Wikibooks
plwikibooks
https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna
MediaWiki 1.47.0-wmf.21
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:Jeśli równe
10
5403
557859
421824
2026-09-29T03:51:16Z
Persino
2851
557859
wikitext
text/x-wiki
<includeonly><!--
-->{{#ifeq: <!-- Pierwszy składnik warunku
-->{{#if:{{{nie piksele|}}} <!-- wyłącza pikselowanie zmiennej 1 -->
|{{{1}}}
|<!-- warunek czy to są jednostki CSS
-->{{#if:{{Dopasuj|ciąg={{{1|0}}}|wzór=%d+%s*%a*}}<!-- Sprawdza, czy to jest miara w jednostkach lub tylko w pikselach bez podania jednostki-->
|{{W pikselach|{{{1|0}}}|{{{dokładność|3}}}}} <!-- Przelicza na piksele bez podania jego jednostki -->
|{{{1}}} <!-- Jeśli to nie jest w jednostkach -->
}}
}}
|<!-- Drugi składnik warunku
-->{{#if:{{{nie piksele|}}}<!-- wyłącza pikselowanie zmiennej 2 -->
|{{{2}}}
|<!-- warunek czy to są jednostki CSS
-->{{#if:{{Dopasuj|ciąg={{{2|0}}}|wzór=%d+%s*%a*}}<!-- Sprawdza, czy to jest miara w jednostkach lub tylko w pikselach bez podania jednostki -->
|{{W pikselach|{{{2|0}}}|{{{dokładność|3}}}}} <!-- Przelicza na piksele bez podania jednostki -->
|{{{2}}} <!-- Jeśli to nie jest w jednostkach -->
}}
}}
|<!-- Gdy oba składniki warunku są równe sobie
-->{{{3|{{{wtedy|{{#if:{{{inaczej|}}} <!-- Gdy inaczej niepuste i gdy oba składniki warunku są równe, nie podano zmiennej 3 i wtedy, to wyświetl zmienną 1 -->
|{{{1}}}
}}}}}}}}
|<!-- Gdy oba składniki warunku są nierówne sobie
-->{{{4|{{{przeciwnie|{{#if:{{{inaczej|}}} <!-- Gdy inaczej niepuste i gdy oba składniki warunku są równe, nie podano zmiennej 3 i wtedy, to wyświetl zmienną 1 -->
|{{{1}}}{{#if:{{{2|}}}<!-- Jeśli dodatkowo, jeśli zmienna 2 jest niepusta to wyświetl 2, a jeśli 1 jest niepuste, to wyświetl 1 i 2 z łącznikiem -->
|{{#if:{{{1}}}
|{{{łącznik|:}}}
}}{{{2}}}
}}
}}<!--
-->}}}}}}<!--
-->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
qs0y9c9hl4p7o291rajgsbisj1b053w
557860
557859
2026-09-29T03:58:35Z
Persino
2851
557860
wikitext
text/x-wiki
<includeonly><!--
-->{{#ifeq: <!-- Pierwszy składnik warunku
-->{{#if:{{{nie piksele|}}} <!-- wyłącza pikselowanie zmiennej 1 -->
|{{{1}}}
|<!-- warunek czy to są jednostki CSS
-->{{#if:{{Dopasuj|ciąg={{{1|0}}}|wzór=%d+%s*%a*}}<!-- Sprawdza, czy to jest miara w jednostkach lub tylko w pikselach bez podania jednostki-->
|{{W pikselach|{{{1|0}}}|{{{dokładność|3}}}}} <!-- Przelicza na piksele bez podania jego jednostki -->
|{{{1}}} <!-- Jeśli to nie jest w jednostkach -->
}}
}}
|<!-- Drugi składnik warunku
-->{{#if:{{{nie piksele|}}}<!-- wyłącza pikselowanie zmiennej 2 -->
|{{{2}}}
|<!-- warunek czy to są jednostki CSS
-->{{#if:{{Dopasuj|ciąg={{{2|0}}}|wzór=%d+%s*%a*}}<!-- Sprawdza, czy to jest miara w jednostkach lub tylko w pikselach bez podania jednostki -->
|{{W pikselach|{{{2|0}}}|{{{dokładność|3}}}}} <!-- Przelicza na piksele bez podania jednostki -->
|{{{2}}} <!-- Jeśli to nie jest w jednostkach -->
}}
}}
|<!-- Gdy oba składniki warunku są równe sobie
-->{{{3|{{{wtedy|{{#if:{{{inaczej|}}} <!-- Gdy inaczej niepuste i gdy oba składniki warunku są równe, nie podano zmiennej 3 i wtedy, to wyświetl zmienną 1 -->
|{{{1}}}
}}}}}}}}
|<!-- Gdy oba składniki warunku są nierówne sobie
-->{{{4|{{{przeciwnie|{{#if:{{{inaczej|}}} <!-- Gdy inaczej niepuste i gdy oba składniki warunku są równe, nie podano zmiennej 4 i wtedy, to wyświetl zmienną 1 -->
|{{{1}}}{{#if:{{{2|}}}<!-- Jeśli dodatkowo, jeśli zmienna 2 jest niepusta to wyświetl 2, a jeśli 1 jest niepuste, to wyświetl 1 i 2 z łącznikiem -->
|{{#if:{{{1}}}
|{{{łącznik|:}}}
}}{{{2}}}
}}
}}<!--
-->}}}}}}<!--
-->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
ggja2wilfkek7nczqfdiyv9tejzuxj9
557862
557860
2026-09-29T04:04:28Z
Persino
2851
557862
wikitext
text/x-wiki
<includeonly><!--
-->{{#ifeq: <!-- Pierwszy składnik warunku
-->{{#if:{{{nie piksele|}}} <!-- wyłącza pikselowanie zmiennej 1 -->
|{{{1}}}
|<!-- warunek czy to są jednostki CSS
-->{{#if:{{Dopasuj|ciąg={{{1|0}}}|wzór=%d+%s*%a*}}<!-- Sprawdza, czy to jest miara w jednostkach lub tylko w pikselach bez podania jednostki-->
|{{W pikselach|{{{1|0}}}|{{{dokładność|5}}}}} <!-- Przelicza na piksele bez podania jego jednostki -->
|{{{1}}} <!-- Jeśli to nie jest w jednostkach -->
}}
}}
|<!-- Drugi składnik warunku
-->{{#if:{{{nie piksele|}}}<!-- wyłącza pikselowanie zmiennej 2 -->
|{{{2}}}
|<!-- warunek czy to są jednostki CSS
-->{{#if:{{Dopasuj|ciąg={{{2|0}}}|wzór=%d+%s*%a*}}<!-- Sprawdza, czy to jest miara w jednostkach lub tylko w pikselach bez podania jednostki -->
|{{W pikselach|{{{2|0}}}|{{{dokładność|5}}}}} <!-- Przelicza na piksele bez podania jednostki -->
|{{{2}}} <!-- Jeśli to nie jest w jednostkach -->
}}
}}
|<!-- Gdy oba składniki warunku są równe sobie
-->{{{3|{{{wtedy|{{#if:{{{inaczej|}}} <!-- Gdy inaczej niepuste i gdy oba składniki warunku są równe, nie podano zmiennej 3 i wtedy, to wyświetl zmienną 1 -->
|{{{1}}}
}}}}}}}}
|<!-- Gdy oba składniki warunku są nierówne sobie
-->{{{4|{{{przeciwnie|{{#if:{{{inaczej|}}} <!-- Gdy inaczej niepuste i gdy oba składniki warunku są równe, nie podano zmiennej 4 i wtedy, to wyświetl zmienną 1 -->
|{{{1}}}{{#if:{{{2|}}}<!-- Jeśli dodatkowo, jeśli zmienna 2 jest niepusta to wyświetl 2, a jeśli 1 jest niepuste, to wyświetl 1 i 2 z łącznikiem -->
|{{#if:{{{1}}}
|{{{łącznik|:}}}
}}{{{2}}}
}}
}}<!--
-->}}}}}}<!--
-->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
de7k3ltccoh7x5djxbn7xq5vsmvewc4
557882
557862
2026-09-29T04:54:10Z
Persino
2851
557882
wikitext
text/x-wiki
<includeonly><!--
-->{{#ifeq: <!-- Pierwszy składnik warunku
-->{{#if:{{{nie piksele|}}} <!-- wyłącza pikselowanie zmiennej 1 -->
|{{{1}}}
|<!-- warunek czy to są jednostki CSS
-->{{#if:{{Dopasuj|ciąg={{{1|0}}}|wzór=%d+%s*%a*}}<!-- Sprawdza, czy to jest miara w jednostkach lub tylko w pikselach bez podania jednostki-->
|{{W pikselach|{{{1|0}}}|{{{dokładność|{{{5|3}}}}}}}} <!-- Przelicza na piksele bez podania jego jednostki -->
|{{{1}}} <!-- Jeśli to nie jest w jednostkach -->
}}
}}
|<!-- Drugi składnik warunku
-->{{#if:{{{nie piksele|}}}<!-- wyłącza pikselowanie zmiennej 2 -->
|{{{2}}}
|<!-- warunek czy to są jednostki CSS
-->{{#if:{{Dopasuj|ciąg={{{2|0}}}|wzór=%d+%s*%a*}}<!-- Sprawdza, czy to jest miara w jednostkach lub tylko w pikselach bez podania jednostki -->
|{{W pikselach|{{{2|0}}}|{{{dokładność|{{{5|3}}}}}}}} <!-- Przelicza na piksele bez podania jednostki -->
|{{{2}}} <!-- Jeśli to nie jest w jednostkach -->
}}
}}
|<!-- Gdy oba składniki warunku są równe sobie
-->{{{3|{{{wtedy|{{#if:{{{inaczej|}}} <!-- Gdy inaczej niepuste i gdy oba składniki warunku są równe, nie podano zmiennej 3 i wtedy, to wyświetl zmienną 1 -->
|{{{1}}}
}}}}}}}}
|<!-- Gdy oba składniki warunku są nierówne sobie
-->{{{4|{{{przeciwnie|{{#if:{{{inaczej|}}} <!-- Gdy inaczej niepuste i gdy oba składniki warunku są równe, nie podano zmiennej 4 i wtedy, to wyświetl zmienną 1 -->
|{{{1}}}{{#if:{{{2|}}}<!-- Jeśli dodatkowo, jeśli zmienna 2 jest niepusta to wyświetl 2, a jeśli 1 jest niepuste, to wyświetl 1 i 2 z łącznikiem -->
|{{#if:{{{1}}}
|{{{łącznik|:}}}
}}{{{2}}}
}}
}}<!--
-->}}}}}}<!--
-->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
s42t7vmo5mz1io1z1kinvxs2mv80406
Szablon:Jeśli równe/opis
10
19964
557863
421827
2026-09-29T04:04:55Z
Persino
2851
/* Parametry */
557863
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Opis ==
Szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą.
== Parametry ==
* {{Code|1}} i {{Code|2}} - pierwszy i drugi parametr szablonu, podane w celu ich porównania ich ze sobą, mogą być one w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{s|W pikselach}},
* {{Code|5}} lub {{Code|dokładność}} - szablon określa z jaką dokładnością, liczba z jednostką bezwzględną, ma być zamieniona na liczbę w pikselach, wartość domyślna to {{Parametr|dokładność|3}},
* {{Code|nie piksele}} - szablon nie przelicza parametrów: {{Code|1}} i {{Code|2}}, na piksele na liczbę bez jednostki, jeśli one są w obsługiwanych jednostkach długości,
* {{Code|3}} lub {{Code|wtedy}} - zawartość tego parametru jest wyświetlana, gdy parametry: {{Code|1}} i {{Code|2}}, są między sobą równe,
* {{Code|4}} lub {{Code|przeciwnie}} - zawartość tego parametru jest wyświetlana, gdy parametry: {{Code|1}} i {{Code|2}}, są między sobą nierówne,
* {{Code|inaczej}} - gdy dwie wartości są równe, to szablon wyświetla pierwszy parametr, gdy są nie równe to on wyświetla te parametry w raz z łącznikiem {{Code|łącznik}}, który domyślnie jest równy {{Parametr|łącznik|:}}, gdy któraś z wartości z tych dwóch jest wartością pustą, to on szablon wyświetla tą wartość niepustą,
* {{Code|łącznik}} - używana wraz z parametrem {{Code|inaczej}} (opis powyżej).
== Użycie ==
{{Pre|{{s|Jeśli równe|a|b|wtedy{{=}}co ma się dziać, gdy a{{=}}b|przeciwnie{{=}}co ma się dziać w przeciwnym przypadku}}}}
== Przykład ==
; Przykład pierwszy
{{Pre|{{s|Jeśli równe|1|2|wtedy{{=}}<math>1 = 2</math>|przeciwnie{{=}}<math>1 \neq 2</math>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|1|2|wtedy=<math>1 = 2</math>|przeciwnie=<math>1 \neq 2</math>}}}}
----
; Przykład drugi
{{Pre|{{s|Jeśli równe|1cm|10mm|wtedy{{=}}<math>1cm = 10mm</math>|przeciwnie{{=}}<math>1cm \neq 10mm</math>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|1cm|10mm|wtedy=<math>1cm = 10mm</math>|przeciwnie=<math>1cm \neq 10mm</math>}}}}
----
; Przykład trzeci
{{Pre|{{s|Jeśli równe|15px|16Q|dokładność{{=}}0|wtedy{{=}}<math>15px = 16Q</math>|przeciwnie{{=}}<math>15px \neq 16Q</math>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|15px|16Q|dokładność=0|wtedy=<math>15px = 16Q</math>|przeciwnie=<math>15px \neq 16Q</math>}}}}
----
; Przykład czwarty
{{Pre|{{s|Jeśli równe|Konik|Konik|wtedy{{=}}Konik to Konik|przeciwnie{{=}}co???}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik|Konik|wtedy=Konik to Konik|przeciwnie=co???}}}}
----
; Przykład piąty
{{Pre|{{s|Jeśli równe|Konik|Konik|inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik|Konik|inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
----
; Przykład szósty
{{Pre|{{s|Jeśli równe|Konik|Kucyk|inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik|Kucyk|inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
----
; Przykład siódmy
{{Pre|{{s|Jeśli równe|Konik||inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik||inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
-----
; Przykład ósmy
{{Pre|{{s|Jeśli równe||Konik|inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe||Konik|inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
== Przydatność ==
Szablon ten może być szczególnie przydatny, jeśli chcemy np. sprawdzić czy pewien parametr jest równy pewnej wartości lub wynosi tyle samo co inny parametr.
== Obciążenie serwera ==
{{Uwaga|
Jest to szablon warunkowy, jednak ze względu na swój mały rozmiar, nie powinien zbytnio obciążać serwera.
}}
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Pierwszy parametr szablonu, podane w celu jego porównania z drugim parametrem, może być ona podana w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{W pikselach}}.",
"type": "string"
},
"2": {
"description": "Drugi parametr szablonu, podane w celu jego porównania z pierwszym parametrem, może być ona podana w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{W pikselach}}.",
"type": "string"
},
"3": {
"aliases": [
"wtedy"
],
"description": "Zawartość tego parametru jest wyświetlana, gdy parametry: 1 i 2, są między sobą równe.",
"type": "string"
},
"4": {
"aliases": [
"przeciwnie"
],
"description": "Zawartość tego parametru jest wyświetlana, gdy parametry: 1 i 2, są między sobą nierówne.",
"type": "string"
},
"nie piksele": {
"description": "Szablon nie przelicza parametrów: 1 i 2, na piksele na liczbę bez jednostki, jeśli one są w obsługiwanych jednostkach długości.",
"type": "string"
},
"inaczej": {
"description": "Gdy dwie wartości są równe, to szablon wyświetla pierwszy parametr, gdy są nie równe to on wyświetla te parametry w raz z łącznikiem łącznik, który domyślnie jest równy | łącznik = :,, gdy któraś z wartości z tych dwóch jest wartością pustą, to on szablon wyświetla tą wartość niepustą.",
"type": "string"
},
"łącznik": {
"description": "Używana wraz z parametrem inaczej (opis powyżej).",
"type": "string"
},
"dokładność": {
"description": "Szablon określa z jaką dokładnością, liczba z jednostką bezwzględną, ma być zamieniona na liczbę w pikselach, wartość domyślna to | dokładność = 3.",
"type": "string"
}
},
"description": "Szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą. ",
"paramOrder": [
"1",
"2",
"dokładność",
"3",
"4",
"nie piksele",
"inaczej",
"łącznik"
]
}
</templatedata>
== Zobacz też ==
; Szablony potrzebne do obliczeń
* {{s|Maksimum}} i {{s|Max}} (przekierowanie) - szablony zwracają większą liczbę z dwóch, ewentualnie z absolutną jednostką długości,
* {{s|Minimum}} i {{s|Min}} (przekierowanie) - szablony zwracają mniejszą liczbę z dwóch, ewentualnie z absolutną jednostką długości,
* {{s|Liczba z absolutną jednostką długości}} - szablon sprawdza, czy w nim parametr jest z absolutną jednostką długości, jeżeli jest, to zwraca tą liczbę, a jeżeli nie, to zwraca tą liczbę z dopiskiem {{Code|px}},
* {{s|W pikselach}} - szablon przelicza miary w różnych obsługiwanych jednostkach CSS na piksele, bez podania jednostki {{Code|px}}.
; Komunikaty szablonu warunkowego
* {{s|jeśli niepuste komunikat}} - jeśli pierwszy parametr jest niepusty, to szablon zwraca komunikat błędu, przeciwnym przypadku zwraca inną zawartość tego szablonu wstawioną jako parametr szablonu.
; Szablon wybierania pierwszego niepustego z dwóch
* {{s|Jeśli niepuste}} - szablon zwraca pierwszy parametr, jeśli on nie jest pusty, w przeciwnym przypadku drugi.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony warunkowe
| Szablony do obliczeń matematycznych
}}
</includeonly>
g9x6xtmia9k8zmrics4jnzeicj39h8d
557865
557863
2026-09-29T04:09:36Z
Persino
2851
/* Zobacz też */
557865
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Opis ==
Szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą.
== Parametry ==
* {{Code|1}} i {{Code|2}} - pierwszy i drugi parametr szablonu, podane w celu ich porównania ich ze sobą, mogą być one w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{s|W pikselach}},
* {{Code|5}} lub {{Code|dokładność}} - szablon określa z jaką dokładnością, liczba z jednostką bezwzględną, ma być zamieniona na liczbę w pikselach, wartość domyślna to {{Parametr|dokładność|3}},
* {{Code|nie piksele}} - szablon nie przelicza parametrów: {{Code|1}} i {{Code|2}}, na piksele na liczbę bez jednostki, jeśli one są w obsługiwanych jednostkach długości,
* {{Code|3}} lub {{Code|wtedy}} - zawartość tego parametru jest wyświetlana, gdy parametry: {{Code|1}} i {{Code|2}}, są między sobą równe,
* {{Code|4}} lub {{Code|przeciwnie}} - zawartość tego parametru jest wyświetlana, gdy parametry: {{Code|1}} i {{Code|2}}, są między sobą nierówne,
* {{Code|inaczej}} - gdy dwie wartości są równe, to szablon wyświetla pierwszy parametr, gdy są nie równe to on wyświetla te parametry w raz z łącznikiem {{Code|łącznik}}, który domyślnie jest równy {{Parametr|łącznik|:}}, gdy któraś z wartości z tych dwóch jest wartością pustą, to on szablon wyświetla tą wartość niepustą,
* {{Code|łącznik}} - używana wraz z parametrem {{Code|inaczej}} (opis powyżej).
== Użycie ==
{{Pre|{{s|Jeśli równe|a|b|wtedy{{=}}co ma się dziać, gdy a{{=}}b|przeciwnie{{=}}co ma się dziać w przeciwnym przypadku}}}}
== Przykład ==
; Przykład pierwszy
{{Pre|{{s|Jeśli równe|1|2|wtedy{{=}}<math>1 = 2</math>|przeciwnie{{=}}<math>1 \neq 2</math>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|1|2|wtedy=<math>1 = 2</math>|przeciwnie=<math>1 \neq 2</math>}}}}
----
; Przykład drugi
{{Pre|{{s|Jeśli równe|1cm|10mm|wtedy{{=}}<math>1cm = 10mm</math>|przeciwnie{{=}}<math>1cm \neq 10mm</math>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|1cm|10mm|wtedy=<math>1cm = 10mm</math>|przeciwnie=<math>1cm \neq 10mm</math>}}}}
----
; Przykład trzeci
{{Pre|{{s|Jeśli równe|15px|16Q|dokładność{{=}}0|wtedy{{=}}<math>15px = 16Q</math>|przeciwnie{{=}}<math>15px \neq 16Q</math>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|15px|16Q|dokładność=0|wtedy=<math>15px = 16Q</math>|przeciwnie=<math>15px \neq 16Q</math>}}}}
----
; Przykład czwarty
{{Pre|{{s|Jeśli równe|Konik|Konik|wtedy{{=}}Konik to Konik|przeciwnie{{=}}co???}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik|Konik|wtedy=Konik to Konik|przeciwnie=co???}}}}
----
; Przykład piąty
{{Pre|{{s|Jeśli równe|Konik|Konik|inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik|Konik|inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
----
; Przykład szósty
{{Pre|{{s|Jeśli równe|Konik|Kucyk|inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik|Kucyk|inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
----
; Przykład siódmy
{{Pre|{{s|Jeśli równe|Konik||inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik||inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
-----
; Przykład ósmy
{{Pre|{{s|Jeśli równe||Konik|inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe||Konik|inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
== Przydatność ==
Szablon ten może być szczególnie przydatny, jeśli chcemy np. sprawdzić czy pewien parametr jest równy pewnej wartości lub wynosi tyle samo co inny parametr.
== Obciążenie serwera ==
{{Uwaga|
Jest to szablon warunkowy, jednak ze względu na swój mały rozmiar, nie powinien zbytnio obciążać serwera.
}}
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Pierwszy parametr szablonu, podane w celu jego porównania z drugim parametrem, może być ona podana w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{W pikselach}}.",
"type": "string"
},
"2": {
"description": "Drugi parametr szablonu, podane w celu jego porównania z pierwszym parametrem, może być ona podana w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{W pikselach}}.",
"type": "string"
},
"3": {
"aliases": [
"wtedy"
],
"description": "Zawartość tego parametru jest wyświetlana, gdy parametry: 1 i 2, są między sobą równe.",
"type": "string"
},
"4": {
"aliases": [
"przeciwnie"
],
"description": "Zawartość tego parametru jest wyświetlana, gdy parametry: 1 i 2, są między sobą nierówne.",
"type": "string"
},
"nie piksele": {
"description": "Szablon nie przelicza parametrów: 1 i 2, na piksele na liczbę bez jednostki, jeśli one są w obsługiwanych jednostkach długości.",
"type": "string"
},
"inaczej": {
"description": "Gdy dwie wartości są równe, to szablon wyświetla pierwszy parametr, gdy są nie równe to on wyświetla te parametry w raz z łącznikiem łącznik, który domyślnie jest równy | łącznik = :,, gdy któraś z wartości z tych dwóch jest wartością pustą, to on szablon wyświetla tą wartość niepustą.",
"type": "string"
},
"łącznik": {
"description": "Używana wraz z parametrem inaczej (opis powyżej).",
"type": "string"
},
"dokładność": {
"description": "Szablon określa z jaką dokładnością, liczba z jednostką bezwzględną, ma być zamieniona na liczbę w pikselach, wartość domyślna to | dokładność = 3.",
"type": "string"
}
},
"description": "Szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą. ",
"paramOrder": [
"1",
"2",
"dokładność",
"3",
"4",
"nie piksele",
"inaczej",
"łącznik"
]
}
</templatedata>
== Zobacz też ==
{{Jeśli równe/opis/Zobacz też}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony warunkowe
| Szablony do obliczeń matematycznych
}}
</includeonly>
stbodf6vaobhnurw12ag4r6j75k17v6
557875
557865
2026-09-29T04:29:33Z
Persino
2851
/* Parametry */
557875
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Opis ==
Szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą.
== Parametry ==
* {{Code|1}} i {{Code|2}} - pierwszy i drugi parametr szablonu, podane w celu ich porównania ich ze sobą, mogą być one w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{s|W pikselach}},
* {{Code|5}} lub {{Code|dokładność}} - szablon określa z jaką dokładnością, liczba z jednostką bezwzględną, ma być zamieniona na liczbę w pikselach, wartość domyślna to {{Parametr|dokładność|3}},
* {{Code|nie piksele}} - szablon nie przelicza parametrów: {{Code|1}} i {{Code|2}}, na piksele na liczbę bez jednostki, jeśli one są w obsługiwanych jednostkach długości,
* {{Code|3}} lub {{Code|wtedy}} - zawartość tego parametru jest wyświetlana, gdy parametry: {{Code|1}} i {{Code|2}}, są między sobą równe,
* {{Code|4}} lub {{Code|przeciwnie}} - zawartość tego parametru jest wyświetlana, gdy parametry: {{Code|1}} i {{Code|2}}, są między sobą nierówne,
* {{Code|inaczej}} - gdy dwie wartości są równe, to szablon wyświetla pierwszy parametr, gdy są nie równe to on wyświetla te parametry wraz z łącznikiem {{Code|łącznik}}, który domyślnie jest równy {{Parametr|łącznik|:}}, gdy któraś z wartości z tych dwóch jest wartością pustą, to on szablon wyświetla tą wartość niepustą,
* {{Code|łącznik}} - używana wraz z parametrem {{Code|inaczej}} (opis powyżej).
== Użycie ==
{{Pre|{{s|Jeśli równe|a|b|wtedy{{=}}co ma się dziać, gdy a{{=}}b|przeciwnie{{=}}co ma się dziać w przeciwnym przypadku}}}}
== Przykład ==
; Przykład pierwszy
{{Pre|{{s|Jeśli równe|1|2|wtedy{{=}}<math>1 = 2</math>|przeciwnie{{=}}<math>1 \neq 2</math>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|1|2|wtedy=<math>1 = 2</math>|przeciwnie=<math>1 \neq 2</math>}}}}
----
; Przykład drugi
{{Pre|{{s|Jeśli równe|1cm|10mm|wtedy{{=}}<math>1cm = 10mm</math>|przeciwnie{{=}}<math>1cm \neq 10mm</math>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|1cm|10mm|wtedy=<math>1cm = 10mm</math>|przeciwnie=<math>1cm \neq 10mm</math>}}}}
----
; Przykład trzeci
{{Pre|{{s|Jeśli równe|15px|16Q|dokładność{{=}}0|wtedy{{=}}<math>15px = 16Q</math>|przeciwnie{{=}}<math>15px \neq 16Q</math>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|15px|16Q|dokładność=0|wtedy=<math>15px = 16Q</math>|przeciwnie=<math>15px \neq 16Q</math>}}}}
----
; Przykład czwarty
{{Pre|{{s|Jeśli równe|Konik|Konik|wtedy{{=}}Konik to Konik|przeciwnie{{=}}co???}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik|Konik|wtedy=Konik to Konik|przeciwnie=co???}}}}
----
; Przykład piąty
{{Pre|{{s|Jeśli równe|Konik|Konik|inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik|Konik|inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
----
; Przykład szósty
{{Pre|{{s|Jeśli równe|Konik|Kucyk|inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik|Kucyk|inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
----
; Przykład siódmy
{{Pre|{{s|Jeśli równe|Konik||inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik||inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
-----
; Przykład ósmy
{{Pre|{{s|Jeśli równe||Konik|inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe||Konik|inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
== Przydatność ==
Szablon ten może być szczególnie przydatny, jeśli chcemy np. sprawdzić czy pewien parametr jest równy pewnej wartości lub wynosi tyle samo co inny parametr.
== Obciążenie serwera ==
{{Uwaga|
Jest to szablon warunkowy, jednak ze względu na swój mały rozmiar, nie powinien zbytnio obciążać serwera.
}}
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Pierwszy parametr szablonu, podane w celu jego porównania z drugim parametrem, może być ona podana w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{W pikselach}}.",
"type": "string"
},
"2": {
"description": "Drugi parametr szablonu, podane w celu jego porównania z pierwszym parametrem, może być ona podana w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{W pikselach}}.",
"type": "string"
},
"3": {
"aliases": [
"wtedy"
],
"description": "Zawartość tego parametru jest wyświetlana, gdy parametry: 1 i 2, są między sobą równe.",
"type": "string"
},
"4": {
"aliases": [
"przeciwnie"
],
"description": "Zawartość tego parametru jest wyświetlana, gdy parametry: 1 i 2, są między sobą nierówne.",
"type": "string"
},
"nie piksele": {
"description": "Szablon nie przelicza parametrów: 1 i 2, na piksele na liczbę bez jednostki, jeśli one są w obsługiwanych jednostkach długości.",
"type": "string"
},
"inaczej": {
"description": "Gdy dwie wartości są równe, to szablon wyświetla pierwszy parametr, gdy są nie równe to on wyświetla te parametry w raz z łącznikiem łącznik, który domyślnie jest równy | łącznik = :,, gdy któraś z wartości z tych dwóch jest wartością pustą, to on szablon wyświetla tą wartość niepustą.",
"type": "string"
},
"łącznik": {
"description": "Używana wraz z parametrem inaczej (opis powyżej).",
"type": "string"
},
"dokładność": {
"description": "Szablon określa z jaką dokładnością, liczba z jednostką bezwzględną, ma być zamieniona na liczbę w pikselach, wartość domyślna to | dokładność = 3.",
"type": "string"
}
},
"description": "Szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą. ",
"paramOrder": [
"1",
"2",
"dokładność",
"3",
"4",
"nie piksele",
"inaczej",
"łącznik"
]
}
</templatedata>
== Zobacz też ==
{{Jeśli równe/opis/Zobacz też}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony warunkowe
| Szablony do obliczeń matematycznych
}}
</includeonly>
1u7fwplsb0qnmmz4dwmwzhqjt3480zt
557879
557875
2026-09-29T04:38:27Z
Persino
2851
/* Opis */
557879
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą.
== Parametry ==
* {{Code|1}} i {{Code|2}} - pierwszy i drugi parametr szablonu, podane w celu ich porównania ich ze sobą, mogą być one w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{s|W pikselach}},
* {{Code|5}} lub {{Code|dokładność}} - szablon określa z jaką dokładnością, liczba z jednostką bezwzględną, ma być zamieniona na liczbę w pikselach, wartość domyślna to {{Parametr|dokładność|3}},
* {{Code|nie piksele}} - szablon nie przelicza parametrów: {{Code|1}} i {{Code|2}}, na piksele na liczbę bez jednostki, jeśli one są w obsługiwanych jednostkach długości,
* {{Code|3}} lub {{Code|wtedy}} - zawartość tego parametru jest wyświetlana, gdy parametry: {{Code|1}} i {{Code|2}}, są między sobą równe,
* {{Code|4}} lub {{Code|przeciwnie}} - zawartość tego parametru jest wyświetlana, gdy parametry: {{Code|1}} i {{Code|2}}, są między sobą nierówne,
* {{Code|inaczej}} - gdy dwie wartości są równe, to szablon wyświetla pierwszy parametr, gdy są nie równe to on wyświetla te parametry wraz z łącznikiem {{Code|łącznik}}, który domyślnie jest równy {{Parametr|łącznik|:}}, gdy któraś z wartości z tych dwóch jest wartością pustą, to on szablon wyświetla tą wartość niepustą,
* {{Code|łącznik}} - używana wraz z parametrem {{Code|inaczej}} (opis powyżej).
== Użycie ==
{{Pre|{{s|Jeśli równe|a|b|wtedy{{=}}co ma się dziać, gdy a{{=}}b|przeciwnie{{=}}co ma się dziać w przeciwnym przypadku}}}}
== Przykład ==
; Przykład pierwszy
{{Pre|{{s|Jeśli równe|1|2|wtedy{{=}}<math>1 = 2</math>|przeciwnie{{=}}<math>1 \neq 2</math>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|1|2|wtedy=<math>1 = 2</math>|przeciwnie=<math>1 \neq 2</math>}}}}
----
; Przykład drugi
{{Pre|{{s|Jeśli równe|1cm|10mm|wtedy{{=}}<math>1cm = 10mm</math>|przeciwnie{{=}}<math>1cm \neq 10mm</math>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|1cm|10mm|wtedy=<math>1cm = 10mm</math>|przeciwnie=<math>1cm \neq 10mm</math>}}}}
----
; Przykład trzeci
{{Pre|{{s|Jeśli równe|15px|16Q|dokładność{{=}}0|wtedy{{=}}<math>15px = 16Q</math>|przeciwnie{{=}}<math>15px \neq 16Q</math>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|15px|16Q|dokładność=0|wtedy=<math>15px = 16Q</math>|przeciwnie=<math>15px \neq 16Q</math>}}}}
----
; Przykład czwarty
{{Pre|{{s|Jeśli równe|Konik|Konik|wtedy{{=}}Konik to Konik|przeciwnie{{=}}co???}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik|Konik|wtedy=Konik to Konik|przeciwnie=co???}}}}
----
; Przykład piąty
{{Pre|{{s|Jeśli równe|Konik|Konik|inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik|Konik|inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
----
; Przykład szósty
{{Pre|{{s|Jeśli równe|Konik|Kucyk|inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik|Kucyk|inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
----
; Przykład siódmy
{{Pre|{{s|Jeśli równe|Konik||inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik||inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
-----
; Przykład ósmy
{{Pre|{{s|Jeśli równe||Konik|inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe||Konik|inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
== Przydatność ==
Szablon ten może być szczególnie przydatny, jeśli chcemy np. sprawdzić czy pewien parametr jest równy pewnej wartości lub wynosi tyle samo co inny parametr.
== Obciążenie serwera ==
{{Uwaga|
Jest to szablon warunkowy, jednak ze względu na swój mały rozmiar, nie powinien zbytnio obciążać serwera.
}}
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Pierwszy parametr szablonu, podane w celu jego porównania z drugim parametrem, może być ona podana w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{W pikselach}}.",
"type": "string"
},
"2": {
"description": "Drugi parametr szablonu, podane w celu jego porównania z pierwszym parametrem, może być ona podana w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{W pikselach}}.",
"type": "string"
},
"3": {
"aliases": [
"wtedy"
],
"description": "Zawartość tego parametru jest wyświetlana, gdy parametry: 1 i 2, są między sobą równe.",
"type": "string"
},
"4": {
"aliases": [
"przeciwnie"
],
"description": "Zawartość tego parametru jest wyświetlana, gdy parametry: 1 i 2, są między sobą nierówne.",
"type": "string"
},
"nie piksele": {
"description": "Szablon nie przelicza parametrów: 1 i 2, na piksele na liczbę bez jednostki, jeśli one są w obsługiwanych jednostkach długości.",
"type": "string"
},
"inaczej": {
"description": "Gdy dwie wartości są równe, to szablon wyświetla pierwszy parametr, gdy są nie równe to on wyświetla te parametry w raz z łącznikiem łącznik, który domyślnie jest równy | łącznik = :,, gdy któraś z wartości z tych dwóch jest wartością pustą, to on szablon wyświetla tą wartość niepustą.",
"type": "string"
},
"łącznik": {
"description": "Używana wraz z parametrem inaczej (opis powyżej).",
"type": "string"
},
"dokładność": {
"description": "Szablon określa z jaką dokładnością, liczba z jednostką bezwzględną, ma być zamieniona na liczbę w pikselach, wartość domyślna to | dokładność = 3.",
"type": "string"
}
},
"description": "Szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą. ",
"paramOrder": [
"1",
"2",
"dokładność",
"3",
"4",
"nie piksele",
"inaczej",
"łącznik"
]
}
</templatedata>
== Zobacz też ==
{{Jeśli równe/opis/Zobacz też}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony warunkowe
| Szablony do obliczeń matematycznych
}}
</includeonly>
sghj3ea6agrmpj82uyjotf4e1nviqp1
557880
557879
2026-09-29T04:39:48Z
Persino
2851
/* Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) */
557880
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą.
== Parametry ==
* {{Code|1}} i {{Code|2}} - pierwszy i drugi parametr szablonu, podane w celu ich porównania ich ze sobą, mogą być one w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{s|W pikselach}},
* {{Code|5}} lub {{Code|dokładność}} - szablon określa z jaką dokładnością, liczba z jednostką bezwzględną, ma być zamieniona na liczbę w pikselach, wartość domyślna to {{Parametr|dokładność|3}},
* {{Code|nie piksele}} - szablon nie przelicza parametrów: {{Code|1}} i {{Code|2}}, na piksele na liczbę bez jednostki, jeśli one są w obsługiwanych jednostkach długości,
* {{Code|3}} lub {{Code|wtedy}} - zawartość tego parametru jest wyświetlana, gdy parametry: {{Code|1}} i {{Code|2}}, są między sobą równe,
* {{Code|4}} lub {{Code|przeciwnie}} - zawartość tego parametru jest wyświetlana, gdy parametry: {{Code|1}} i {{Code|2}}, są między sobą nierówne,
* {{Code|inaczej}} - gdy dwie wartości są równe, to szablon wyświetla pierwszy parametr, gdy są nie równe to on wyświetla te parametry wraz z łącznikiem {{Code|łącznik}}, który domyślnie jest równy {{Parametr|łącznik|:}}, gdy któraś z wartości z tych dwóch jest wartością pustą, to on szablon wyświetla tą wartość niepustą,
* {{Code|łącznik}} - używana wraz z parametrem {{Code|inaczej}} (opis powyżej).
== Użycie ==
{{Pre|{{s|Jeśli równe|a|b|wtedy{{=}}co ma się dziać, gdy a{{=}}b|przeciwnie{{=}}co ma się dziać w przeciwnym przypadku}}}}
== Przykład ==
; Przykład pierwszy
{{Pre|{{s|Jeśli równe|1|2|wtedy{{=}}<math>1 = 2</math>|przeciwnie{{=}}<math>1 \neq 2</math>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|1|2|wtedy=<math>1 = 2</math>|przeciwnie=<math>1 \neq 2</math>}}}}
----
; Przykład drugi
{{Pre|{{s|Jeśli równe|1cm|10mm|wtedy{{=}}<math>1cm = 10mm</math>|przeciwnie{{=}}<math>1cm \neq 10mm</math>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|1cm|10mm|wtedy=<math>1cm = 10mm</math>|przeciwnie=<math>1cm \neq 10mm</math>}}}}
----
; Przykład trzeci
{{Pre|{{s|Jeśli równe|15px|16Q|dokładność{{=}}0|wtedy{{=}}<math>15px = 16Q</math>|przeciwnie{{=}}<math>15px \neq 16Q</math>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|15px|16Q|dokładność=0|wtedy=<math>15px = 16Q</math>|przeciwnie=<math>15px \neq 16Q</math>}}}}
----
; Przykład czwarty
{{Pre|{{s|Jeśli równe|Konik|Konik|wtedy{{=}}Konik to Konik|przeciwnie{{=}}co???}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik|Konik|wtedy=Konik to Konik|przeciwnie=co???}}}}
----
; Przykład piąty
{{Pre|{{s|Jeśli równe|Konik|Konik|inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik|Konik|inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
----
; Przykład szósty
{{Pre|{{s|Jeśli równe|Konik|Kucyk|inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik|Kucyk|inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
----
; Przykład siódmy
{{Pre|{{s|Jeśli równe|Konik||inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe|Konik||inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
-----
; Przykład ósmy
{{Pre|{{s|Jeśli równe||Konik|inaczej{{=}}tak|łącznik{{=}}<MATH>\neq</MATH>}}}}
; otrzymamy
{{Pre|{{Jeśli równe||Konik|inaczej=tak|łącznik=<MATH>\neq</MATH>}}}}
== Przydatność ==
Szablon ten może być szczególnie przydatny, jeśli chcemy np. sprawdzić czy pewien parametr jest równy pewnej wartości lub wynosi tyle samo co inny parametr.
== Obciążenie serwera ==
{{Uwaga|
Jest to szablon warunkowy, jednak ze względu na swój mały rozmiar, nie powinien zbytnio obciążać serwera.
}}
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Pierwszy parametr szablonu, podane w celu jego porównania z drugim parametrem, może być ona podana w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{W pikselach}}.",
"type": "string"
},
"2": {
"description": "Drugi parametr szablonu, podane w celu jego porównania z pierwszym parametrem, może być ona podana w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{W pikselach}}.",
"type": "string"
},
"3": {
"aliases": [
"wtedy"
],
"description": "Zawartość tego parametru jest wyświetlana, gdy parametry: 1 i 2, są między sobą równe.",
"type": "string"
},
"4": {
"aliases": [
"przeciwnie"
],
"description": "Zawartość tego parametru jest wyświetlana, gdy parametry: 1 i 2, są między sobą nierówne.",
"type": "string"
},
"nie piksele": {
"description": "Szablon nie przelicza parametrów: 1 i 2, na piksele na liczbę bez jednostki, jeśli one są w obsługiwanych jednostkach długości.",
"type": "string"
},
"inaczej": {
"description": "Gdy dwie wartości są równe, to szablon wyświetla pierwszy parametr, gdy są nie równe to on wyświetla te parametry w raz z łącznikiem łącznik, który domyślnie jest równy | łącznik = :,, gdy któraś z wartości z tych dwóch jest wartością pustą, to on szablon wyświetla tą wartość niepustą.",
"type": "string"
},
"łącznik": {
"description": "Używana wraz z parametrem inaczej (opis powyżej).",
"type": "string"
},
"dokładność": {
"description": "Szablon określa z jaką dokładnością, liczba z jednostką bezwzględną, ma być zamieniona na liczbę w pikselach, wartość domyślna to | dokładność = 3.",
"type": "string",
"aliases": [
"5"
]
}
},
"description": "Szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą. ",
"paramOrder": [
"1",
"2",
"dokładność",
"3",
"4",
"nie piksele",
"inaczej",
"łącznik"
]
}
</templatedata>
== Zobacz też ==
{{Jeśli równe/opis/Zobacz też}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony warunkowe
| Szablony do obliczeń matematycznych
}}
</includeonly>
rfnemv6m54fcjjfnu4oxd8pvoz4g8vv
Szablon:NUMBEROFDAYS
10
27566
557851
369386
2026-09-28T19:22:22Z
Persino
2851
557851
wikitext
text/x-wiki
<includeonly>{{#switch:{{{1}}}
|luty|2|02={{#expr:28+{{ISYEARLEAP|{{{2|1}}}}}}}
|kwiecień|4|04=30
|czerwiec|6|06=30
|wrzesień|9|09=30
|listopad|11=30
|#default=31}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
61gakr7mjqjux3uz453o43wvngotn88
Szablon:Czas/opis
10
33472
557834
369383
2026-09-28T18:32:01Z
Persino
2851
557834
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Opis szablonu ==
Szablon służy do do wyświetlania sformatowanego czasu. Pomoc do funkcji <nowiki>{{#time:format czasu|określenie czasu (opcjonalny)}}</nowiki> dla którego pomoc jest na stronie [[w:Pomoc:Funkcje_parsera#time|tutaj]] (patrz też: [[mw:Help:Extension:ParserFunctions##time|tutaj]]). Funkcja przyjmuje format czasu jak jego tutaj podany odpowiednik parser w takiej samej postaci, a także i określenie czasu, jako parametry opcjonalne.
== Użycie ==
{{Pre|
{{s|Czas
| format czasu jak dla parsera {{s|#time: format czasu | określenie czasu (opcjonalny) }} (opcjonalny).
} określenie czasu jak dla tego samego parsera (opcjonalny)
}}}}
== Przykład ==
; Przykład pierwszy{{dk}}
* {{s|Czas}}
; Wynik
* {{Czas}}
; Przykład drugi:
*{{s|Czas|Y-m-d}}
; Wynik
*{{Czas|Y-m-d}}
; Przykład trzeci{{dk}}
* {{s|Czas|Y-m-d|2000-12-20}}
; Wynik
* {{Czas|Y-m-d|2000-12-20}}
; Przykład czwarty{{dk}}
* {{s|Czas|2=2000-12-20}}
; Wynik
* {{Czas|2=2000-12-20}}
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
<includeonly>
{{Kategoria|Szablony daty i czasu}}
</includeonly>
ie6y0iu6uw7rs2lab1fu9sbbp974h65
557835
557834
2026-09-28T18:32:38Z
Persino
2851
/* Przykład */
557835
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Opis szablonu ==
Szablon służy do do wyświetlania sformatowanego czasu. Pomoc do funkcji <nowiki>{{#time:format czasu|określenie czasu (opcjonalny)}}</nowiki> dla którego pomoc jest na stronie [[w:Pomoc:Funkcje_parsera#time|tutaj]] (patrz też: [[mw:Help:Extension:ParserFunctions##time|tutaj]]). Funkcja przyjmuje format czasu jak jego tutaj podany odpowiednik parser w takiej samej postaci, a także i określenie czasu, jako parametry opcjonalne.
== Użycie ==
{{Pre|
{{s|Czas
| format czasu jak dla parsera {{s|#time: format czasu | określenie czasu (opcjonalny) }} (opcjonalny).
} określenie czasu jak dla tego samego parsera (opcjonalny)
}}}}
== Przykład ==
; Przykład pierwszy{{dk}}
* {{s|Czas}}
; Wynik
* {{Czas}}
{{Hr}}
; Przykład drugi:
*{{s|Czas|Y-m-d}}
; Wynik
*{{Czas|Y-m-d}}
{{Hr}}
; Przykład trzeci{{dk}}
* {{s|Czas|Y-m-d|2000-12-20}}
; Wynik
* {{Czas|Y-m-d|2000-12-20}}
{{Hr}}
; Przykład czwarty{{dk}}
* {{s|Czas|2=2000-12-20}}
; Wynik
* {{Czas|2=2000-12-20}}
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
<includeonly>
{{Kategoria|Szablony daty i czasu}}
</includeonly>
spsj0k8xhnec6z1gn8i5psg0h75l7yk
557837
557835
2026-09-28T18:36:27Z
Persino
2851
/* Użycie */
557837
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Opis szablonu ==
Szablon służy do do wyświetlania sformatowanego czasu. Pomoc do funkcji <nowiki>{{#time:format czasu|określenie czasu (opcjonalny)}}</nowiki> dla którego pomoc jest na stronie [[w:Pomoc:Funkcje_parsera#time|tutaj]] (patrz też: [[mw:Help:Extension:ParserFunctions##time|tutaj]]). Funkcja przyjmuje format czasu jak jego tutaj podany odpowiednik parser w takiej samej postaci, a także i określenie czasu, jako parametry opcjonalne.
== Użycie ==
{{Pre|
{{s|Czas
| format czasu jak dla parsera {{s|#time: {{ls|Czas|format czasu}} | określenie czasu (opcjonalny) }} (opcjonalny).
} określenie czasu jak dla tego samego parsera (opcjonalny)
}}}}
== Przykład ==
; Przykład pierwszy{{dk}}
* {{s|Czas}}
; Wynik
* {{Czas}}
{{Hr}}
; Przykład drugi:
*{{s|Czas|Y-m-d}}
; Wynik
*{{Czas|Y-m-d}}
{{Hr}}
; Przykład trzeci{{dk}}
* {{s|Czas|Y-m-d|2000-12-20}}
; Wynik
* {{Czas|Y-m-d|2000-12-20}}
{{Hr}}
; Przykład czwarty{{dk}}
* {{s|Czas|2=2000-12-20}}
; Wynik
* {{Czas|2=2000-12-20}}
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
<includeonly>
{{Kategoria|Szablony daty i czasu}}
</includeonly>
6gkud5al3i8gjk8muzci6odwci2dc1m
557838
557837
2026-09-28T18:37:16Z
Persino
2851
/* Użycie */
557838
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Opis szablonu ==
Szablon służy do do wyświetlania sformatowanego czasu. Pomoc do funkcji <nowiki>{{#time:format czasu|określenie czasu (opcjonalny)}}</nowiki> dla którego pomoc jest na stronie [[w:Pomoc:Funkcje_parsera#time|tutaj]] (patrz też: [[mw:Help:Extension:ParserFunctions##time|tutaj]]). Funkcja przyjmuje format czasu jak jego tutaj podany odpowiednik parser w takiej samej postaci, a także i określenie czasu, jako parametry opcjonalne.
== Użycie ==
{{Pre|
{{s|Czas
| format czasu jak dla parsera {{s|#time: format czasu | określenie czasu (opcjonalny) }} (opcjonalny).
} określenie czasu jak dla tego samego parsera (opcjonalny)
}}}}
== Przykład ==
; Przykład pierwszy{{dk}}
* {{s|Czas}}
; Wynik
* {{Czas}}
{{Hr}}
; Przykład drugi:
*{{s|Czas|Y-m-d}}
; Wynik
*{{Czas|Y-m-d}}
{{Hr}}
; Przykład trzeci{{dk}}
* {{s|Czas|Y-m-d|2000-12-20}}
; Wynik
* {{Czas|Y-m-d|2000-12-20}}
{{Hr}}
; Przykład czwarty{{dk}}
* {{s|Czas|2=2000-12-20}}
; Wynik
* {{Czas|2=2000-12-20}}
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
<includeonly>
{{Kategoria|Szablony daty i czasu}}
</includeonly>
spsj0k8xhnec6z1gn8i5psg0h75l7yk
557840
557838
2026-09-28T18:45:33Z
Persino
2851
/* Opis szablonu */
557840
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Opis szablonu ==
Szablon służy do do wyświetlania sformatowanego czasu. Pomoc do funkcji: {{Code|{{s|#time:format czasu|określenie czasu (opcjonalny)}}}}, dla którego pomoc jest na stronie {{lpg|Funkcje_parsera#time|tutaj}} (patrz też: {{lkp|Extension:ParserFunctions##time|tutaj}}). Funkcja przyjmuje: {{Code|format czasu}}, jak jego tutaj podany odpowiednik, czyli parser w takiej samej postaci, a także i {{Code|określenie czasu}}, jako parametry opcjonalne.
== Użycie ==
{{Pre|
{{s|Czas
| format czasu jak dla parsera {{s|#time: format czasu | określenie czasu (opcjonalny) }} (opcjonalny).
} określenie czasu jak dla tego samego parsera (opcjonalny)
}}}}
== Przykład ==
; Przykład pierwszy{{dk}}
* {{s|Czas}}
; Wynik
* {{Czas}}
{{Hr}}
; Przykład drugi:
*{{s|Czas|Y-m-d}}
; Wynik
*{{Czas|Y-m-d}}
{{Hr}}
; Przykład trzeci{{dk}}
* {{s|Czas|Y-m-d|2000-12-20}}
; Wynik
* {{Czas|Y-m-d|2000-12-20}}
{{Hr}}
; Przykład czwarty{{dk}}
* {{s|Czas|2=2000-12-20}}
; Wynik
* {{Czas|2=2000-12-20}}
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
<includeonly>
{{Kategoria|Szablony daty i czasu}}
</includeonly>
f8j14zr8ppftip3v5mpsgmwnybez2xl
557841
557840
2026-09-28T18:46:49Z
Persino
2851
/* Opis szablonu */
557841
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Opis szablonu ==
Szablon służy do do wyświetlania sformatowanego czasu. Pomoc do funkcji: {{Code|{{s|#time:format czasu|określenie czasu (opcjonalny)}}}}, dla którego pomoc jest na stronie {{lpp|Funkcje_parsera#time|tutaj}} (patrz też: {{lkp|Extension:ParserFunctions##time|tutaj}}). Funkcja przyjmuje: {{Code|format czasu}}, jak jego tutaj podany odpowiednik, czyli parser w takiej samej postaci, a także i {{Code|określenie czasu}}, jako parametry opcjonalne.
== Użycie ==
{{Pre|
{{s|Czas
| format czasu jak dla parsera {{s|#time: format czasu | określenie czasu (opcjonalny) }} (opcjonalny).
} określenie czasu jak dla tego samego parsera (opcjonalny)
}}}}
== Przykład ==
; Przykład pierwszy{{dk}}
* {{s|Czas}}
; Wynik
* {{Czas}}
{{Hr}}
; Przykład drugi:
*{{s|Czas|Y-m-d}}
; Wynik
*{{Czas|Y-m-d}}
{{Hr}}
; Przykład trzeci{{dk}}
* {{s|Czas|Y-m-d|2000-12-20}}
; Wynik
* {{Czas|Y-m-d|2000-12-20}}
{{Hr}}
; Przykład czwarty{{dk}}
* {{s|Czas|2=2000-12-20}}
; Wynik
* {{Czas|2=2000-12-20}}
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
<includeonly>
{{Kategoria|Szablony daty i czasu}}
</includeonly>
0raucbu6idfvm9u6caowyldjo89v9li
557842
557841
2026-09-28T18:48:54Z
Persino
2851
/* Opis szablonu */
557842
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Opis szablonu ==
Szablon służy do do wyświetlania sformatowanego czasu. Pomoc do funkcji: {{Code|{{s|#time:format czasu|określenie czasu (opcjonalny)}}}}, dla którego pomoc jest na stronie: {{lpp|Funkcje_parsera#time|tutaj}} (patrz też: {{lkp|Extension:ParserFunctions##time|tutaj}}). Funkcja przyjmuje: {{Code|format czasu}}, jak jego tutaj podany odpowiednik, czyli parser w takiej samej postaci z argumentem, a także i {{Code|określenie czasu}}, jako parametry opcjonalne.
== Użycie ==
{{Pre|
{{s|Czas
| format czasu jak dla parsera {{s|#time: format czasu | określenie czasu (opcjonalny) }} (opcjonalny).
} określenie czasu jak dla tego samego parsera (opcjonalny)
}}}}
== Przykład ==
; Przykład pierwszy{{dk}}
* {{s|Czas}}
; Wynik
* {{Czas}}
{{Hr}}
; Przykład drugi:
*{{s|Czas|Y-m-d}}
; Wynik
*{{Czas|Y-m-d}}
{{Hr}}
; Przykład trzeci{{dk}}
* {{s|Czas|Y-m-d|2000-12-20}}
; Wynik
* {{Czas|Y-m-d|2000-12-20}}
{{Hr}}
; Przykład czwarty{{dk}}
* {{s|Czas|2=2000-12-20}}
; Wynik
* {{Czas|2=2000-12-20}}
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
<includeonly>
{{Kategoria|Szablony daty i czasu}}
</includeonly>
d4b8zk9g3glq942lho0bf4nu9abkf8t
Szablon:MONTHNAME/opis
10
34203
557848
269220
2026-09-28T19:15:15Z
Persino
2851
557848
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY -->
== Użycie ==
Zwraca nazwę miesiąca w {{un|dopełniaczu}} dla parametru '''numer miesiąca'''.
(patrz mianownik: {{ls2|MONTHMIA}}, miejscownik: {{ls2|MONTHMSC}})
== Przykład ==
: {{Tt|{{s|MONTHNAME|}}''numer miesiąca''{{tt|}}}}
; Przykład użycia (stnadardowy zapis):
: {{Tt|{{s|MONTHNAME|1}}}} zwraca: {{MONTHNAME|1}}
: {{Tt|{{s|MONTHNAME|2}}}} zwraca: {{MONTHNAME|2}}
: {{Tt|{{s|MONTHNAME|3}}}} zwraca: {{MONTHNAME|3}}
: {{Tt|{{s|MONTHNAME|4}}}} zwraca: {{MONTHNAME|4}}
: {{Tt|{{s|MONTHNAME|5}}}} zwraca: {{MONTHNAME|5}}
: {{Tt|{{s|MONTHNAME|6}}}} zwraca: {{MONTHNAME|6}}
: {{Tt|{{s|MONTHNAME|7}}}} zwraca: {{MONTHNAME|7}}
: {{Tt|{{s|MONTHNAME|8}}}} zwraca: {{MONTHNAME|8}}
: {{Tt|{{s|MONTHNAME|9}}}} zwraca: {{MONTHNAME|9}}
: {{Tt|{{s|MONTHNAME|10}}}} zwraca: {{MONTHNAME|10}}
: {{Tt|{{s|MONTHNAME|11}}}} zwraca: {{MONTHNAME|11}}
: {{Tt|{{s|MONTHNAME|12}}}} zwraca: {{MONTHNAME|12}}
; Przykład użycia (z dodatkowym zerem na początku):
: {{Tt|{{s|MONTHNAME|01}}}} zwraca: {{MONTHNAME|01}}
: {{Tt|{{s|MONTHNAME|02}}}} zwraca: {{MONTHNAME|02}}
: {{Tt|{{s|MONTHNAME|03}}}} zwraca: {{MONTHNAME|03}}
: {{Tt|{{s|MONTHNAME|04}}}} zwraca: {{MONTHNAME|04}}
: {{Tt|{{s|MONTHNAME|05}}}} zwraca: {{MONTHNAME|05}}
: {{Tt|{{s|MONTHNAME|06}}}} zwraca: {{MONTHNAME|06}}
: {{Tt|{{s|MONTHNAME|07}}}} zwraca: {{MONTHNAME|07}}
: {{Tt|{{s|MONTHNAME|08}}}} zwraca: {{MONTHNAME|08}}
: {{Tt|{{s|MONTHNAME|09}}}} zwraca: {{MONTHNAME|09}}
: {{Tt|{{s|MONTHNAME|10}}}} zwraca: {{MONTHNAME|10}}
: {{Tt|{{s|MONTHNAME|11}}}} zwraca: {{MONTHNAME|11}}
: {{Tt|{{s|MONTHNAME|12}}}} zwraca: {{MONTHNAME|12}}
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
}
}
</templatedata>
== Zobacz też ==
{{-}}
<includeonly><!--
++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony daty i czasu}}
</includeonly>
duj04y207aee6a6fvcsoqqtzts2siye
Szablon:MONTHMIA
10
34204
557844
269221
2026-09-28T19:02:57Z
Persino
2851
557844
wikitext
text/x-wiki
<includeonly>{{#switch: {{{1|{{LOCALMONTH}}}}}
|1|01=styczeń
|2|02=luty
|3|03=marzec
|4|04=kwiecień
|5|05=maj
|6|06=czerwiec
|7|07=lipiec
|8|08=sierpień
|9|09=wrzesień
|10=październik
|11=listopad
|12=grudzień
|{{#time: F | 1.{{LOCALMONTH}}.{{LOCALYEAR}} }} }}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
d22e0tz09nuf7cu0w6pgrj9733uid4x
Szablon:MONTHMIA/opis
10
34205
557843
394828
2026-09-28T19:00:08Z
Persino
2851
557843
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY -->
== Użycie ==
Szablon zwraca nazwę miesiąca w mianowniku. Przyjmuje parametr - numer oznaczający miesiąc. W przypadku niepodania parametru lub podania błędnego szablon domyślnie wywołuje się dla bieżącego miesiąca.
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony daty i czasu}}
</includeonly>
f605hqqlx9ifhhboe79m9zkcy3zgf1j
557847
557843
2026-09-28T19:08:25Z
Persino
2851
557847
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY -->
== Użycie ==
Szablon zwraca nazwę miesiąca w mianowniku. Przyjmuje parametr - numer oznaczający miesiąc. W przypadku niepodania parametru lub podania błędnego szablon domyślnie wywołuje się dla bieżącego miesiąca.
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
}
}
</templatedata>
== Zobacz też ==
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony daty i czasu}}
</includeonly>
nklekbsd2b1czqhdnj0affnkemq62fi
Szablon:MONTHMSC
10
34206
557845
269223
2026-09-28T19:04:29Z
Persino
2851
557845
wikitext
text/x-wiki
<includeonly>{{#switch: {{{1|{{CURRENTMONTH}}}}}
| 1 = styczniu
| 01 = styczniu
| styczeń = styczniu
| 2 = lutym
| 02 = lutym
| luty = lutym
| 3 = marcu
| 03 = marcu
| marzec = marcu
| 4 = kwietniu
| 04 = kwietniu
| kwiecień = kwietniu
| 5 = maju
| 05 = maju
| maj = maju
| 6 = czerwcu
| 06 = czerwcu
| czerwiec = czerwcu
| 7 = lipcu
| 07 = lipcu
| lipiec = lipcu
| 8 = sierpniu
| 08 = sierpniu
| sierpień = sierpniu
| 9 = wrześniu
| 09 = wrześniu
| wrzesień = wrześniu
| 10 = październiku
| październik = październiku
| 11 = listopadzie
| listopad = listopadzie
| 12 = grudniu
| grudzień = grudniu
}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
ik0dz69v6vnnlxwlnxcl1bgqeq053bt
Szablon:MONTHNUMBER
10
34207
557850
269224
2026-09-28T19:21:09Z
Persino
2851
557850
wikitext
text/x-wiki
<includeonly>{{#if:{{{1|}}}|{{#switch:{{lc:{{{1}}}}}|styczeń|sty=1|luty|lut=2|marzec|mar=3|kwiecień|kwi=4|maj|maj=5|czerwiec|cze=6|lipiec|lip=7|sierpień|sie=8|wrzesień|wrz=9|październik|paź=10|listopad|lis=11|grudzień|gru=12|{{#ifexpr:{{{1}}}<0|{{#ifexpr:(({{{1}}})round 0)!=({{{1}}})|{{#expr:12-(((0.5-({{{1}}}))round 0)mod 12)}}|{{#expr:12-(((11.5-({{{1}}}))round 0)mod 12)}}}}|{{#expr:(((10.5+{{{1}}})round 0)mod 12)+1}}}}}}|Brak wymaganego parametru 1=''miesiąc''!}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
s9609km8k8ue6h2xpr25vmxelmjy2gb
Szablon:MONTHNUMBER/opis
10
34208
557849
269225
2026-09-28T19:20:16Z
Persino
2851
557849
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY -->
Szablon zwraca numer miesiąca dla parametru '''nazwa miesiąca'''.
== Użycie ==
{{s|MONTHNUMBER|''nazwa miesiąca''}}
== Przykład ==
* {{Code|{{s|MONTHNUMBER|styczeń}}}} – zwraca {{MONTHNUMBER|styczeń}}
* {{Code|{{s|MONTHNUMBER|luty}}}} – zwraca {{MONTHNUMBER|luty}}
* {{Code|{{s|MONTHNUMBER|marzec}}}} – zwraca {{MONTHNUMBER|marzec}}
* {{Code|{{s|MONTHNUMBER|kwiecień}}}} – zwraca {{MONTHNUMBER|kwiecień}}
* {{Code|{{s|MONTHNUMBER|maj}}}} – zwraca {{MONTHNUMBER|maj}}
* {{Code|{{s|MONTHNUMBER|czerwiec}}}} – zwraca {{MONTHNUMBER|czerwiec}}
* {{Code|{{s|MONTHNUMBER|lipiec}}}} – zwraca {{MONTHNUMBER|lipiec}}
* {{Code|{{s|MONTHNUMBER|sierpień}}}} – zwraca {{MONTHNUMBER|sierpień}}
* {{Code|{{s|MONTHNUMBER|wrzesień}}}} – zwraca {{MONTHNUMBER|wrzesień}}
* {{Code|{{s|MONTHNUMBER|październik}}}} – zwraca {{MONTHNUMBER|październik}}
* {{Code|{{s|MONTHNUMBER|listopad}}}} – zwraca {{MONTHNUMBER|listopad}}
* {{Code|{{s|MONTHNUMBER|grudzień}}}} – zwraca {{MONTHNUMBER|grudzień}}
; Przykład użycia wszystkich polskich skróconych nazw miesięcy:
* {{Code|{{s|MONTHNUMBER|sty}}}} – zwraca {{MONTHNUMBER|sty}}
* {{Code|{{s|MONTHNUMBER|lut}}}} – zwraca {{MONTHNUMBER|lut}}
* {{Code|{{s|MONTHNUMBER|mar}}}} – zwraca {{MONTHNUMBER|mar}}
* {{Code|{{s|MONTHNUMBER|kwi}}}} – zwraca {{MONTHNUMBER|kwi}}
* {{Code|{{s|MONTHNUMBER|maj}}}} – zwraca {{MONTHNUMBER|maj}}
* {{Code|{{s|MONTHNUMBER|cze}}}} – zwraca {{MONTHNUMBER|cze}}
* {{Code|{{s|MONTHNUMBER|lip}}}} – zwraca {{MONTHNUMBER|lip}}
* {{Code|{{s|MONTHNUMBER|sie}}}} – zwraca {{MONTHNUMBER|sie}}
* {{Code|{{s|MONTHNUMBER|wrz}}}} – zwraca {{MONTHNUMBER|wrz}}
* {{Code|{{s|MONTHNUMBER|paź}}}} – zwraca {{MONTHNUMBER|paź}}
* {{Code|{{s|MONTHNUMBER|lis}}}} – zwraca {{MONTHNUMBER|lis}}
* {{Code|{{s|MONTHNUMBER|gru}}}} – zwraca {{MONTHNUMBER|gru}}
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
}
}
</templatedata>
== Zobacz też ==
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony daty i czasu}}
</includeonly>
d0od12jhj81mskwy264sab2iv6j8bge
Szablon:Wiek w dniach/opis
10
34210
557855
269227
2026-09-28T19:30:17Z
Persino
2851
557855
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY -->
== Użycie ==
Zwraca liczbę dni pomiędzy dwoma datami.
: {{Tt|{{s|wiek w dniach|month1{{=}} |day1{{=}} |year1{{=}} |month2{{=}} |day2{{=}} |year2{{=}}}}}},
z nieprzypisanymi parametrami:
: {{Tt|{{s|wiek w dniach|year1|month1|day1|year2|month2|day2}}}}
: {{Tt|{{s|wiek w dniach|year1|month1|day1}}}}
== Przykład ==
* {{Code|{{s|wiek w dniach|2007|1|1|2007|12|31}}}} zwraca: {{wiek w dniach|2007|1|1|2007|12|31}}
* {{Code|{{s|wiek w dniach|2007|5|24}}}} zwraca: {{wiek w dniach|2007|5|24}}
== Zobacz też ==
* {{s|Data wydania}}
<includeonly><!--
++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony daty i czasu
| Szablony związane z biogramami
}}
</includeonly>
sdi713a59fv7xze3888zfoco9z26zgf
Szablon:Lat lub miesięcy temu/opis
10
34214
557856
394829
2026-09-28T19:32:35Z
Persino
2851
557856
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Zwraca liczbę miesięcy lub lat ile upłynęło od podanej daty:
* {{Code|{{s|Lat lub miesięcy temu|''rok''|''miesiąc''}}}}
* {{Code|{{s|Lat lub miesięcy temu|''rok''}}}}
== Przykład ==
* {{Code|{{s|Lat lub miesięcy temu|2010|01}}}} zwraca: "{{Lat lub miesięcy temu|2010|01}}".
* {{Code|{{s|Lat lub miesięcy temu|{{#time:Y|-53 days}}|{{#time:m|-53 days}}}}}} zwraca: "{{Lat lub miesięcy temu|{{#time:Y|-53 days}}|{{#time:m|-53 days}}}}".
* {{Code|{{s|Lat lub miesięcy temu|{{#time:Y|-370 days}}}}}} zwraca: "{{Lat lub miesięcy temu|{{#time:Y|-370 days}}}}".
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"description": "Szablon zwraca liczbę miesięcy lub lat, która od podanej daty upłynęła",
"params": {
"1": {
"label": "Rok",
"type": "number",
"required": true,
"description": "Rok"
},
"2": {
"label": "Miesiąc",
"type": "number",
"required": false,
"description": "Miesiąc"
}
}
}
</templatedata>
== Zobacz też ==
* {{ls|Data_wydania|Data Wydania}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony daty i czasu}}
</includeonly>
ev2ze4iwrqojzbm96cosv5qzk7qhqxo
Szablon:Ogranicz
10
34221
557833
269252
2026-09-28T18:28:04Z
Persino
2851
557833
wikitext
text/x-wiki
<includeonly>{{#if:{{{warunek|TAK}}}|{{#iferror:{{#ifexpr:{{{max|240}}}<{{{1}}}|{{{max|240}}}|{{#ifexpr:{{{1}}}<{{{min|60}}}|{{{min|60}}}|{{{1}}}}}}}|{{{default|240}}}}}|0}}</includeonly><noinclude>{{Dokumentacja|zawartość=Funkcja sprawdza wartość pierwszego parametru i jeżeli jest on większy od parametru "max" (domyślnie 240) lub mniejszy od parametru "min" (domyślnie 60) to jako wynik podaje odpowiednią z tych wartości. Jeżeli pierwszy parametr mieści się w tych granicach to jest zwracany bez zmian. Jeżeli pierwszy parametr nie jest liczbą to jest zwracana wartość parametru "default" (domyślnie 240).
}}{{Kategoria|Szablony funkcji matematycznych}}</noinclude>
hn5sza411jbv8z5w4dnhrfn98mnwphp
Moduł:StronicowyParser
828
34347
557808
557638
2026-09-28T12:01:16Z
Persino
2851
557808
Scribunto
text/plain
local p = {}
function p.SpreparowanyWikikodStrony(nazwa_modulu,dokumentacja,inkludowana)
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local szablonowe_modul=require("Module:Szablonowe");
local nazwa_modulu_szablonowa=szablonowe_modul["SzablonowaKompletnaNazwaStrony"](nazwa_modulu,nil,nil);
return stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,nazwa_modulu,nazwa_modulu_szablonowa,dokumentacja,inkludowana);
end;
function p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu_aktualna_czy_biezaca,inkludowana)
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local szablonowe_modul=require("Module:Szablonowe");
local nazwa_modulu_aktualna_czy_biezaca_szablonowa=szablonowe_modul["SzablonowaKompletnaNazwaStrony"](nazwa_modulu_aktualna_czy_biezaca,nil,nil);
local tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony=stronicowyparser_tekst_modul.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nil,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,inkludowana,nil);
return tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony;
end;
p["DaneUkładuAutonawigacji"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
local spis,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki,tab_lista_artykulow_w_ksiazce,tab_lista_zmiennych_w_artykule=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
if(not spis)then return nil;end;
return tab_lista_artykulow_w_ksiazce.nazwa_bazowego_spisu,tab_lista_artykulow_w_ksiazce.tab_inne_spisy,tab_lista_artykulow_w_ksiazce.dodatkowe_strony_woluminu;
end;
p["SpisyTreści"]=function(frame,tabela_listy_danych_analizy_ksiazki,bez_json)
local nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly=p["DaneUkładuAutonawigacji"](frame,tabela_listy_danych_analizy_ksiazki);
local tabela={};
tabela.spis_tresci=nazwa_glownego_spisu;
tabela.inne_spisy=tab_inne_spisy;
tabela.dodatkowe_strony_woluminu=dodatkowe_artykuly;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local czy_json=((not bez_json)and(parametry_modul.CzyTak(PobierzParametr("json")))) and true or false;
return czy_json and mw.text.jsonEncode(tabela,mw.text.JSON_PRESERVE_KEYS) or tabela;
end;
p["CzySpisTreści"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local spisy=p["SpisyTreści"](frame,tabela_listy_danych_analizy_ksiazki,true);
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local artykul=PobierzParametr("artykuł");
----
if(artykul)then
artykul=parametry_modul["Odstępy"]{[1]=artykul,[2]="tak",};
if((spisy.spis_tresci)and((parametry_modul.TypeTable(spisy.spis_tresci))and((spisy.spis_tresci[1]==artykul)or(spisy.spis_tresci[2]==artykul))or(spisy.spis_tresci==artykul)))then
return "tak";
else
if((spisy.inne_spisy)and(parametry_modul.TypeTable(spisy.inne_spisy)))then
for _,spis_tresci in ipairs(spisy.inne_spisy)do
if((parametry_modul.TypeTable(spis_tresci))and((spis_tresci[1]==artykul)or(spis_tresci[2]==artykul))or(spis_tresci==artykul))then
return "tak";
end;
end;
end;
end;
end;
end;
p["TekstRozdziałuStrony"]=function(frame)
local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały");
return stronicowyparser_rozdzialy.TekstPoNapisieWprowadzeniaTekstuStrony(frame);
end;
p["KtóraSekcjaStrony"]=function(frame)
local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały");
return stronicowyparser_rozdzialy.NumerSekcjiStrony(frame);
end;
p["ZwróćSekcjęNagłówkaStrony"]=function(frame)
local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały");
return stronicowyparser_rozdzialy.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony(frame);
end;
p["NastępnyArtykuł"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local iterator=stronicowyparser_potrzebne_modul.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki);
if (not iterator)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args();
---
local parametry_modul=require("Module:Parametry");
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local analizowana=parametry_modul.CzyTak(args["analizowana"]);
local numer=tonumber(args[1]) or 0;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
local html_modul=require("Module:Html");
local nazwa_artykulu_bez_naglowka=html_modul["NazwaStronyAdresu"](nazwa_artykulu,true);
local nazwa_artykulu=(not naglowek) and nazwa_artykulu_bez_naglowka or nazwa_artykulu;
----
local juz_tak=false;
local nadstrona_artykulu=(numer>0) and stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu_bez_naglowka,numer) or nil;
----
for nazwa_artykulu_w_bazie,nazwa_linku_artykulu_w_bazie,przekierowanie_artykulu_w_bazie,pelna_nazwa_ksiazki_w_bazie in iterator do
local nazwa_artykulu_w_bazie2=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,naglowek);
local function Nastepny()
if(not nazwa)then
return stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana);
end;
return nazwa_linku_artykulu_w_bazie or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana);
end;
if(juz_tak)then
if(numer>0)then
local nazwa_artykulu_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(nazwa_artykulu_w_bazie,false);
local numer_artykulu_w_bazie=stronicowyparser_potrzebne_modul.PoziomAdresu(nazwa_artykulu_bez_naglowka_w_bazie);
local nadstrona_artykulu_w_bazie=stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu_bez_naglowka_w_bazie,numer);
if((numer==numer_artykulu_w_bazie)and(nadstrona_artykulu==nadstrona_artykulu_w_bazie))then
return Nastepny();
end;
else
return Nastepny();
end;
else
if(nazwa_artykulu_w_bazie2==nazwa_artykulu)then
juz_tak=true;
end;
end;
end;
if(juz_tak)then
return "";
else
return "(błąd)";
end;
end;
p["PoprzedniArtykuł"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local iterator=stronicowyparser_potrzebne_modul.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki);
if (not iterator)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args();
---
local parametry_modul=require("Module:Parametry");
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local analizowana=parametry_modul.CzyTak(args["analizowana"]);
local numer=tonumber(args[1]) or 0;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
local html_modul=require("Module:Html");
local nazwa_artykulu_bez_naglowka=html_modul["NazwaStronyAdresu"](nazwa_artykulu,true);
local nazwa_artykulu=(not naglowek) and nazwa_artykulu_bez_naglowka or nazwa_artykulu;
----
local juz_tak=false;
local nadstrona_artykulu=(numer>0) and stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu_bez_naglowka,numer) or nil;
----
local artykul="";
----
for nazwa_artykulu_w_bazie,nazwa_linku_artykulu_w_bazie,przekierowanie_artykulu_w_bazie,pelna_nazwa_ksiazki_w_bazie in iterator do
local nazwa_artykulu_w_bazie2=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,naglowek);
if(numer>0)then
local nazwa_artykulu_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(nazwa_artykulu_w_bazie,false);
local numer_artykulu_w_bazie=stronicowyparser_potrzebne_modul.PoziomAdresu(nazwa_artykulu_bez_naglowka_w_bazie);
local nadstrona_artykulu_w_bazie=stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu_bez_naglowka_w_bazie,numer);
if((numer==numer_artykulu_w_bazie)and(nadstrona_artykulu==nadstrona_artykulu_w_bazie))then
if(nazwa_artykulu_w_bazie2==nazwa_artykulu)then
return artykul;
else
artykul=(not nazwa) and stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana) or (nazwa_linku_artykulu_w_bazie or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana));
end;
else
if(artykul~="")then
return artykul;
else
artykul="";
end;
end;
else
if(nazwa_artykulu_w_bazie2==nazwa_artykulu)then
return artykul;
else
artykul=(not nazwa) and stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana) or (nazwa_linku_artykulu_w_bazie or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana));
end;
end;
end;
return "(błąd)";
end;
p["PoziomNazwyArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
return stronicowyparser_potrzebne_modul.PoziomAdresu(nazwa_artykulu);
end;
p["PierwszyArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local iterator=stronicowyparser_potrzebne_modul.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki);
if (not iterator)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local analizowana=parametry_modul.CzyTak(args["analizowana"]);
local numer=tonumber(args[1]) or 0;
local args=stronicowyparser_potrzebne_modul:Args();
for tab_artykul,nazwa_linku,przekierowanie,pelna_nazwa_ksiazki in iterator do
local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab_artykul,czy_naglowek);
local function PierwszyArtykul()
if(not nazwa)then
return stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(artykul,pelna_nazwa_ksiazki,przekierowanie,czy_naglowek,ksiazka,analizowana);
else
return nazwa_linku or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(artykul,pelna_nazwa_ksiazki,przekierowanie,czy_naglowek,ksiazka,analizowana);
end;
end;
if(numer==0)then
return PierwszyArtykul();
else
local numer_artykulu_w_bazie=stronicowyparser_potrzebne_modul.PoziomAdresu(artykul);
if(numer==numer_artykulu_w_bazie)then
return PierwszyArtykul();
end;
end;
end;
return "(błąd)";
end;
p["OstatniArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local iterator=stronicowyparser_potrzebne_modul.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki);
if (not iterator)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local analizowana=parametry_modul.CzyTak(args["analizowana"]);
local numer=tonumber(args[1]) or 0;
local ostatni_artykul=nil;
for tab_artykul,nazwa_linku,przekierowanie,pelna_nazwa_ksiazki in iterator do
local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab_artykul,czy_naglowek);
local function OstatniArtykul()
if(not nazwa)then
ostatni_artykul=stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(artykul,pelna_nazwa_ksiazki,przekierowanie,czy_naglowek,ksiazka,analizowana);
else
ostatni_artykul=nazwa_linku or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(artykul,pelna_nazwa_ksiazki,przekierowanie,czy_naglowek,ksiazka,analizowana);
end;
end;
if(numer==0)then
OstatniArtykul();
else
local numer_artykulu_w_bazie=stronicowyparser_potrzebne_modul.PoziomAdresu(artykul);
if(numer==numer_artykulu_w_bazie)then
OstatniArtykul();
end;
end;
end;
if(ostatni_artykul)then return ostatni_artykul;end;
return "(błąd)";
end;
p["PomiędzyNagłówek"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
return stronicowyparser_potrzebne_modul:LosowyNapisProwadzeniaTekstuBezPierwszegoOrazOstatniegoNapisuSpisuRzeczy(frame);
end;
p["LosowyNagłówek"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
return stronicowyparser_potrzebne_modul:LosowyNapisProwadzeniaTekstuWoluminu(frame);
end;
p["PierwszyNagłówek"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
return stronicowyparser_potrzebne_modul:PierwszyNapisWprowadzeniaTekstu(frame);
end;
p["OstatniNagłówek"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
return stronicowyparser_potrzebne_modul:OstatniNapisWprowadzeniaTekstu(frame);
end;
p["LiczbaNagłówkówSpisu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
return stronicowyparser_potrzebne_modul:LiczbaNapisowaWprowadzeniaTekstu(frame);
end;
p["PomiędzyArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local val=stronicowyparser_potrzebne_modul:ObliczeniaInformacje(frame);
if(not val)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local parametry_modul=require("Module:Parametry");
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local analizowana=parametry_modul.CzyTak(args["analizowana"]);
local element=stronicowyparser_potrzebne_modul:LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu(frame,numer) or nil;
if(not element)then return "(błąd)";end;
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local czy_table=parametry_modul.TypeTable(element);
if(not nazwa)then return czy_table and stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(element[1],element[4],element[3],naglowek,ksiazka,analizowana) or ((not czy_table) and element or "(błąd)");end;
return czy_table and (element[2] or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(element[1],element[4],element[3],naglowek,ksiazka,analizowana)) or ((not czy_table) and element or "(błąd)");
end;
p["LosowyArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local val=stronicowyparser_potrzebne_modul:ObliczeniaInformacje(frame);
if(not val)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local parametry_modul=require("Module:Parametry");
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local analizowana=parametry_modul.CzyTak(args["analizowana"]);
local element=stronicowyparser_potrzebne_modul:LosowaStronaWoluminu(frame,numer);
if(not element)then return "(błąd)";end;
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local czy_table=parametry_modul.TypeTable(element);
if(not nazwa)then return czy_table and stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(element[1],element[4],element[3],naglowek,ksiazka,analizowana) or ((not czy_table) and element or "(błąd)");end;
return czy_table and (element[2] or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(element[1],element[4],element[3],naglowek,ksiazka,analizowana)) or ((not czy_table) and element or "(błąd)");
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_tabela_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
if(not czy_tabela_artykulu)then
local nazwa_artykulu_z_parametrami_i_naglowkiem=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul_w_bazie[1],czy_naglowek);
if(nazwa_artykulu_z_parametrami_i_naglowkiem==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
else
local nazwa_artykulu_z_parametrami_i_naglowkiem=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul_w_bazie[1][1],czy_naglowek);
if(nazwa_artykulu_z_parametrami_i_naglowkiem==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_tabela_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local nazwa_artykulu=czy_tabela_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(nazwa_artykulu,false) or nil;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args();
local parametry_modul=require("Module:Parametry");
local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(not uzupelniaj_sekcje_artykulow)then
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_tabela_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local artykul_ksiazki=czy_tabela_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
artykul_ksiazki=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul_ksiazki,czy_naglowek);
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local szablonowe_modul=require("Module:Szablonowe");
local parametry_szablony,nazwa_szablonu_wywolania,modyfikatory_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local linia2=artykul_w_bazie[3];
local czy_spis_tresci=mw.ustring.match(linia2,"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})")
or mw.ustring.match(linia2,"({{%s*[Ss]r%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(linia2,"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
local linia2,_=mw.ustring.gsub(linia2,"({{%s*[Ss]r%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or ("|"..a)).."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
else
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
return stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame) or ((not __error)and "(błąd)" or nil);
end;
p["AktualnaKsiążkaArtykułu"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args();
----
local parametry_modul=require("Module:Parametry");
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local nazwy_modul=require("Module:Nazwy");
----
local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame);
local nazwa_artykulu_ksiazki=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
----
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_tabela_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local nazwa_artykulu_dana=czy_tabela_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
nazwa_artykulu_dana=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_dana,czy_naglowek);
if(nazwa_artykulu_ksiazki==nazwa_artykulu_dana)then
if(not czy_tabela_artykulu)then
return nazwa_ksiazki;
else
local pelna_nazwa_ksiazki=artykul_w_bazie[1][4];
if((pelna_nazwa_ksiazki)and(pelna_nazwa_ksiazki[4]))then
return nazwy_modul["NazwaModułu"](pelna_nazwa_ksiazki[1],pelna_nazwa_ksiazki[2],pelna_nazwa_ksiazki[3],"")
else
return nazwa_ksiazki;
end;
end;
end;
end;
end;
end;
return ((not __error)and "(błąd)" or nil)
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
return stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame) or ((not __error)and "(błąd)" or nil);
end;
p["PobierzNumerNagłówka"]=function(frame)
local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaNagłówkówKsiążek");
return stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzNumerNagłówka"](frame);
end;
p["PobierzNazwęNagłówka"]=function(frame)
local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaNagłówkówKsiążek");
return stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzNazwęNagłówka"](frame);
end;
p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek");
local wartosc,_=stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzNumerArtykułu"](frame,tabela_listy_danych_analizy_ksiazki);
return wartosc;
end;
p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek");
local wartosc,_=stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzNazwęArtykułu"](frame,tabela_listy_danych_analizy_ksiazki);
return wartosc;
end;
p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki,kodowanie_nie_json)
local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek");
return stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzDaneKsiążki"](frame,tabela_listy_danych_analizy_ksiazki,kodowanie_nie_json);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local parametry_modul=require("Module:Parametry");
local odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=stronicowyparser_obiekty.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu;
local tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu);
setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
local czy_centrowany=tab_lista[1][2][4];
if((numer_rozdzialu)and(numer_rozdzialu>0)and(not czy_centrowany))then
if(not tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")..linki_modul["Link wewnętrzny"]{["strona"]=pelna_nazwa_ksiazki,["nagłówek"]=rozdzial,["nazwa"]=rozdzial,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
local nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame,true);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local nazwy_modul=require("Module:Nazwy");
if(nazwa_strony==nazwy_modul["PEŁNANAZWASTRONY"]())then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={[1]="Próbowano załadować bieżącą stronę.",},};
end;
local szablonowe_modul=require("Module:Szablonowe");
local szablon=szablonowe_modul.NazwaSzablonu(nazwa_strony);
local zawartosc=frame:expandTemplate{title=szablon,args={},};
--Tworzenie ramek div--
local divramka=mw.html.create('div');
divramka:addClass('artykułsubst');
local poddivramka=mw.html.create('div');
poddivramka:wikitext(nazwa_strony);
poddivramka:addClass("adres");
poddivramka:css("display","none");
divramka:node(poddivramka);
local divzawartosc=mw.html.create('div');
divzawartosc:addClass("zawartość");
divzawartosc:css("display","block");
divzawartosc:wikitext(zawartosc);
divramka:node(divzawartosc)
--Zwracanie ramki div--
return tostring(divramka:allDone());
end;
p["KsiążkaSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa_przestrzeni_nazw=PobierzParametr("nazwa przestrzeni nazw");
local nazwa_jednostki=PobierzParametr("nazwa jednostki");
if((not nazwa_przestrzeni_nazw)and(not nazwa_jednostki))then
local str=tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"];
if(str)then
str=frame:preprocess(str);
return str;
end;
return nil;
end;
local nazwy_modul=require("Module:Nazwy");
local tabela_nazw={};
local pelnanazwastrony=(nazwa_przestrzeni_nazw or nazwy_modul["NAZWAPRZESTRZENI"](nil,tabela_nazwy))..":"..(nazwa_jednostki or nazwy_modul["NAZWASTRONY"](nil,tabela_nazwy));
local ksiazkowe_modul=require("Module:Książkowe");
local tabela_nazw={};
local nazwa_przestrzeni=ksiazkowe_modul["NazwaPrzestrzeni"](pelnanazwastrony,tabela_nazw);
local nazwa_przestrzeni_ksiazki=ksiazkowe_modul["NazwaPrzestrzeniKsiążki"](pelnanazwastrony,tabela_nazw);
local nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="") and ksiazkowe_modul["NazwaTytułuKsiążki"](pelnanazwastrony,tabela_nazw) or ksiazkowe_modul["NazwaKsiążki"](pelnanazwastrony,tabela_nazw);
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelnanazwastrony,tabela_nazw);
local str=((((tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInneRozdział"]or{})[nazwa_przestrzeni]or{})[nazwa_przestrzeni_ksiazki]or{})[nazwa_ksiazki]or{})[nazwa_artykulu];
if(str)then
str=frame:preprocess(str);
return str;
end;
local str=(((tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInne"]or{})[nazwa_przestrzeni]or{})[nazwa_przestrzeni_ksiazki]or{})[nazwa_ksiazki];
if(str)then
str=frame:preprocess(str);
return str;
end;
return nil;
end;
p["StronaSubst"] = function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame,true);
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa_przestrzeni_nazw=PobierzParametr("nazwa przestrzeni nazw");
local nazwa_jednostki=PobierzParametr("nazwa jednostki");
local tab_stronasubst;
if((not nazwa_przestrzeni_nazw)and(not nazwa_jednostki))then
tab_stronasubst=tabela_listy_danych_analizy_ksiazki["StronaSubst"];
if(not tab_stronasubst)then return;end;
else
local nazwy_modul=require("Module:Nazwy");
local tabela_nazw={};
local pelnanazwastrony=(nazwa_przestrzeni_nazw or nazwy_modul["NAZWAPRZESTRZENI"](nil,tabela_nazwy))..":"..(nazwa_jednostki or nazwy_modul["NAZWASTRONY"](nil,tabela_nazwy));
local tabela_nazw={};
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_przestrzeni=ksiazkowe_modul["NazwaPrzestrzeni"](pelnanazwastrony,tabela_nazw);
local nazwa_przestrzeni_ksiazki=ksiazkowe_modul["NazwaPrzestrzeniKsiążki"](pelnanazwastrony,tabela_nazw);
local nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="") and ksiazkowe_modul["NazwaTytułuKsiążki"](pelnanazwastrony,tabela_nazw) or ksiazkowe_modul["NazwaKsiążki"](pelnanazwastrony,tabela_nazw);
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelnanazwastrony,tabela_nazw);
tab_stronasubst=(((tabela_listy_danych_analizy_ksiazki["StronaSubstInne"] or {})[nazwa_przestrzeni]or{})[nazwa_przestrzeni_ksiazki]or{})[nazwa_ksiazki];
if(not tab_stronasubst)then return;end;
end;
local pierwszy=parametry_modul["Odstępy"]{nazwa=args[1],["wewnątrz"]="tak",};
local tab_strona=tab_stronasubst[pierwszy];
if(not tab_strona)then return;end;
local link=args["link"];
local czy_link=parametry_modul.CzyTak(link);
local stronasubst=tab_strona[(czy_link and "tak" or "")];
stronasubst=frame:preprocess(stronasubst);
return stronasubst;
end;
p["CzyStronęNumerować"] = function(frame)
local strona=frame.args[1];
local nazwy_modul=require("Module:Nazwy");
strona=nazwy_modul["PEŁNANAZWASTRONY"](strona);
local pudelko_modul=require("Module:Pudełko");
if(strona==pudelko_modul["Strona główna tego projektu"](frame))then
return;
end;
if(strona==pudelko_modul["Strona główna dla dzieci tego projektu"](frame))then
return;
end;
if(mw.ustring.match(strona,"^Szablon:Strona główna/"))then
return;
end;
local zbiory={
["Szablon:Nowe podręczniki miesiąca/Zwycięzca"]=true,
["Wikibooks:Polecane książki"]=true,
["Szablon:Wyróżnienia książek miesiąca/Wyróżniony"]=true,
}
if(zbiory[strona])then
return;
end;
if(mw.ustring.match(strona,"^Szablon:Polecane książki/")
or(mw.ustring.match(strona,"^Szablon:Nowe podręczniki miesiąca/"))
or(mw.ustring.match(strona,"^Szablon:Wyróżnienia książek miesiąca/"))
)then
return;
end;
return "tak";
end;
function p.HNumer(frame)
local parametry_modul=require("Module:Parametry");
local p=parametry_modul.PobierzFrameEwentualnieParent(frame);
if((not p) or (not p.args[1]))then
local blad_module=require("Module:Błąd");
local frame2=p:newChild{args={[1]="Podano złe parametry w szablonie: [[Szablon:HLiczba]].",["tag"]="span",},}
blad_module.error(frame2);
return;
end;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local naglowek,licznik=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(p.args[1]);
if(licznik>6)then
local id=p.args["id"];
local styl=p.args["styl"];
local klasa=p.args["klasa"];
local atrybuty=p.args["atrybuty"];
local parametry_modul=require("Module:Parametry");
return "<h6"..(parametry_modul.CzyTak(id)and " id=\""..id.."\"" or "")
..(parametry_modul.CzyTak(styl)and " style=\""..styl.."\"" or "")
.." class=\"mw-hnumber mw-hnumber-"..licznik..((parametry_modul.CzyTak(klasa)) and (" "..klasa) or "").."\""
..(parametry_modul.CzyTak(atrybuty)and " "..atrybuty or "")
..">"..naglowek.."</h6>";
elseif(licznik<1)then
local blad_module=require("Module:Błąd");
return blad_module.error{args={[1]="Nie podano nagłówka w szablonie: [[Szablon:HLiczba]].",["tag"]="strong",},};
else
local id=p.args["id"];
local styl=p.args["styl"];
local klasa=p.args["klasa"];
local atrybuty=p.args["atrybuty"];
local parametry_modul=require("Module:Parametry");
return "<h"..licznik..(parametry_modul.CzyTak(id)and " id=\""..id.."\"" or "")
..(parametry_modul.CzyTak(styl)and " style=\""..styl.."\"" or "")
..((parametry_modul.CzyTak(klasa)) and " class=\""..klasa.."\"" or "")
..(parametry_modul.CzyTak(atrybuty)and " "..atrybuty or "")..">"..naglowek.."</h"..licznik..">";
end;
end;
function p.TOC(frame,czy_rozciagnij,gdy_pusty_spis_tresci)
local nazwy_modul=require("Module:Nazwy");
local parametry_modul=require("Module:Parametry");
local ksiazkowe_modul=require("Module:Książkowe");
local html_modul=require("Module:Html");
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
local uzyskana_nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local uzyskana_nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
local uzyskana_nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
local uzyskana_nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu;
local pelna_nazwa_strony=((uzyskana_nazwa_przestrzeni~="") and (uzyskana_nazwa_przestrzeni..":") or "")..((uzyskana_nazwa_przestrzeni_ksiazki~="") and (uzyskana_nazwa_przestrzeni_ksiazki.."/") or "")..uzyskana_nazwa_ksiazki..((uzyskana_nazwa_artykulu~="")and ("/"..uzyskana_nazwa_artykulu) or "");
local args=parametry_modul.PobierzArgsParametry(frame,true);
local nazwa_ksiazki;local nazwa_artykulu;
if(args[1])then
nazwa_artykulu=args[1];
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;
if(args[2])then
nazwa_ksiazki=args[2];
nazwa_ksiazki=html_modul.DecodeHtml(nazwa_ksiazki,true);
local techniczne_modul=require("Module:Techniczne");
nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_ksiazki,[2]=pelna_nazwa_strony,};
end;
local nazwa_artykulu=parametry_modul.CzyTak(nazwa_artykulu) and nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_strony);
local czy_nazwa_ksiazki=parametry_modul.CzyTak(nazwa_ksiazki);
local podana_nazwa_przestrzeni_nazw=czy_nazwa_ksiazki and (nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki)) or ksiazkowe_modul["NazwaPrzestrzeni"](pelna_nazwa_strony);
local podana_nazwa_jednostki=czy_nazwa_ksiazki and (nazwy_modul["NAZWAKSIĄŻKI"](nazwa_ksiazki)..((nazwa_artykulu~="")and ("/"..nazwa_artykulu) or "")) or ksiazkowe_modul["NazwaArtykułu"](pelna_nazwa_strony);
local args_nowe={
["nazwa przestrzeni nazw"] = podana_nazwa_przestrzeni_nazw,
["nazwa jednostki"] = podana_nazwa_jednostki,
};
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu{args=args_nowe};
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu{args=args_nowe};
local spis,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,lista_artykulow_w_ksiazkach_w_danej_przestrzeni_ksiazki,tab_lista_artykulow_w_ksiazce,tab_lista_zmiennych_w_artykule=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu{args=args_nowe};
local self_zmienna,tabela_listy_danych_analizy_ksiazki=stronicowyparser_potrzebne_modul:Self();
if((not tab_lista_zmiennych_w_artykule)and(not tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza))then
local blad_modul=require("Module:Błąd");
return blad_modul.error{tab="span",tekst="Nie znalazłem takiej książki."};
end;
local czy_nie_aktualny=(
(self_zmienna.nazwa_przestrzeni_podana~=self_zmienna.nazwa_przestrzeni)
or(self_zmienna.nazwa_przestrzeni_woluminu_podana~=self_zmienna.nazwa_przestrzeni_woluminu)
or(self_zmienna.nazwa_woluminu_podana~=self_zmienna.nazwa_woluminu)
or (self_zmienna.nazwa_podstrony_woluminu_podana~=self_zmienna.nazwa_podstrony_woluminu)
);
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
if ((tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza)or(tab_lista_zmiennych_w_artykule and tab_lista_zmiennych_w_artykule.TOC or nil)) then
local spis_tresci_artykulu=stronicowyparser_potrzebne_modul.TOC(frame,tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza or tab_lista_zmiennych_w_artykule.TOC, czy_nie_aktualny,czy_rozciagnij);
return spis_tresci_artykulu;
elseif(not gdy_pusty_spis_tresci)then
local spis_tresci_artykulu=stronicowyparser_potrzebne_modul.TOC(frame,nil,czy_nie_aktualny,czy_rozciagnij);
return spis_tresci_artykulu;
end;
end;
p["WykazModułówKsiążki"]=function(frame,czy_rozciagnij)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local self_zmienna=stronicowyparser_potrzebne_modul:Self();
local nazwa_ksiazki=self_zmienna.nazwa_woluminu;
local nazwa_przestrzeni_ksiazki=self_zmienna.nazwa_przestrzeni_woluminu;
local nazwa_przestrzeni=self_zmienna.nazwa_przestrzeni;
local parametry_modul=require("Module:Parametry");
local spis_ksiazkowy=parametry_modul.CzyTak(frame.args["spis książkowy"]);
local spis_rzeczy=parametry_modul.CzyTak(frame.args["spis rzeczy"]);
local tylko_naglowki=parametry_modul.CzyTak(frame.args["nagłówki"]);
local artykul=frame.args["artykuł"];
local wysokosc=frame.args["wysokość"];
local szerokosc=frame.args["szerokość"];
local wykaz_modulow_w_liscie="";
local czy_spis_tresci=nil;
local i=1;
local czy_spisy=nil;
for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local czy_nienilowy_rozdzial=tab_lista[1][2][1];
local poziom_rozdzialu=czy_nienilowy_rozdzial or 0;
if((artykul)and(poziom_rozdzialu==1))then
if(((m==1)and(not czy_spisy))or((m>1)and(czy_spisy)))then
local spis=tab_lista[1]["spis"];
if(spis)then
if(not czy_spis_tresci)then
local spis_tresci_dany=spis[1];
czy_spis_tresci=(artykul==spis_tresci_dany);
czy_spisy=true;
else
break;
end;
else
local dodatkowe=tab_lista[1]["dodatkowe"];
if(dodatkowe)then
break;
end;
end;
end;
end;
if((not artykul)or((artykul)and((not czy_spisy)or((czy_spisy)and(czy_spis_tresci)))))then
if(tab_lista[2])then
for _,tab_pozycja in ipairs(tab_lista[2])do
local sformatowana_nazwa_artykulu;
local nazwa;
if(type(tab_pozycja[1])~="table")then
sformatowana_nazwa_artykulu=mw.ustring.gsub(tab_pozycja[1],"_"," ");
nazwa=sformatowana_nazwa_artykulu;
else
sformatowana_nazwa_artykulu=mw.ustring.gsub(tab_pozycja[1][1],"_"," ");
nazwa=tab_pozycja[1][2] or sformatowana_nazwa_artykulu;
end;
local id=tab_pozycja[4]
if(not tylko_naglowki or id)then
if(not spis_ksiazkowy)then
wykaz_modulow_w_liscie=((wykaz_modulow_w_liscie~="") and (wykaz_modulow_w_liscie.."\n") or "")..'<li>[['..((not spis_rzeczy or not id)and (((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="")and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki.."/") or "#")..sformatowana_nazwa_artykulu.."|<span class=\"tocnumber\">"..i.."</span><span class=\"toctext\">"..nazwa..'</span>]]</li>';
else
wykaz_modulow_w_liscie=((wykaz_modulow_w_liscie~="") and (wykaz_modulow_w_liscie.."\n") or "")..'{{SpisZw||[['..((not spis_rzeczy or not id)and (((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="")and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki.."/") or "#")..sformatowana_nazwa_artykulu.."|"..nazwa.."]]|"..i.."|100%}}";
end;
i=i+1;
end;
end;
end;
end;
end;
if(wykaz_modulow_w_liscie=="")then return nil;end;
if(not spis_ksiazkowy)then
wykaz_modulow_w_liscie="<ul>"..wykaz_modulow_w_liscie.."</ul>";
wykaz_modulow_w_liscie='<div class="toc_ogólnie_spis toc_wykaz" style="width:100%;max-height:25rem;overflow:auto;">'..wykaz_modulow_w_liscie.."</div>";
wykaz_modulow_w_liscie='{{Tabela nawigacyjna|styl=width:'..(czy_rozciagnij and "100%" or (szerokosc or "auto"))..';max-width:100%;font-size:0.875rem;line-height:1.2;background-color:white;|tytuł=<div style="font-size:0.875rem;line-height:1.2;background-color:white;text-align:left;white-space:nowrap;">Wykaz modułów w książce</div>|spis='..wykaz_modulow_w_liscie..'|funkcja=UkrytaWikitabelowaListaMenu}}';
else
wykaz_modulow_w_liscie="<div class=\"toc_wykaz mw-overflow-y\" style=\""..(wysokosc and ("max-height:"..wysokosc..";overflow:auto;") or "").."border:solid #aaa 1px;padding:0.625rem;width:"..(czy_rozciagnij and "100%" or (szerokosc or "auto"))..";max-width:100%;box-sizing:border-box;background-color:white;\">"..wykaz_modulow_w_liscie.."</div>";
end;
local rozwiniety_wikikod=frame:preprocess(wykaz_modulow_w_liscie);
return rozwiniety_wikikod;
end;
p["NazwaAktualnyModuł"]=function()
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
local nazwy_np_modul=mw.loadData('Moduł:Nazwy/Np');
local nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu;
if(nazwa_artykulu==nil)then
return "[["..nazwy_np_modul.Category..": Nie można wygenerować nazwy strony]]";
else
return nazwa_artykulu;
end;
end;
p["WstępDoLicencji"]=function(frame)
local element_licencji_1='<strong>Autor:</strong> '..frame.args[1]..'<BR>';
local element_licencji_2;
if((frame.args[2]~='')and(frame.args[2]~=nil))then
element_licencji_2=frame.args[2]..'<BR>';
end;
local element_licencji_3;
if((frame.args[3]~='')and(frame.args[3]~=nil))then
element_licencji_3='<strong>Email:</strong> '..frame.args[3]..'<BR>';
end;
local element_licencji_4;
if((frame.args[4]~='')and(frame.args[4]~=nil))then
element_licencji_4='<strong>Dotyczy:</strong> '..frame.args[4].."<BR>";
else
element_licencji_4='<strong>Dotyczy:</strong> książki, do której należy ta strona, oraz w niej zawartych stron i w nich podstron, a także w nich kolumn, wraz z zawartościami.<BR>';
end;
local element_licencji_5;
if((frame.args[5]~='')and(frame.args[5]~=nil))then
element_licencji_5=frame.args[5].."<BR>";
else
element_licencji_5='Użytkownika książki, do której należy ta strona, oraz w niej zawartych stron i w nich podstron, a także w nich kolumn, wraz z zawartościami nie zwalnia z odpowiedzialności prawnoautorskiej nieprzeczytanie warunków licencjonowania.<BR>';
end;
local element_licencji_6;
if((frame.args[6]~='')and(frame.args[6]~=nil))then
element_licencji_6='<strong>Umowa prawna:</strong> '..frame.args[6]..'<BR>';
else
element_licencji_6='<strong>Umowa prawna:</strong> [http://creativecommons.org/licenses/by-sa/3.0/deed.pl Creative Commons: uznanie autorstwa, na tych samych warunkach, z możliwością obowiązywania dodatkowych ograniczeń].<BR>';
end;
local element_licencji_7;
if((frame.args[7]~='')and(frame.args[7]~=nil))then
element_licencji_7=frame.args[7].."<BR>";
else
element_licencji_7='Autor tej książki dołożył wszelką staranność, aby informacje zawarte w książce były poprawne i najwyższej jakości, jednakże nie udzielana jest żadna gwarancja, czy też rękojma. Autor nie jest odpowiedzialny za wykorzystanie informacji zawarte w książce, nawet jeśli wywołaby jakąś szkodę, straty w zyskach, zastoju w prowadzeniu firmy, przedsiębiorstwa lub spółki bądź utraty informacji, niezależnie czy autor (a nawet [https://pl.wikibooks.org Wikibooks]) został powiadomiony o możliwości wystąpienie szkód. Informacje zawarte w książce mogą być wykorzystane tylko na własną odpowiedzialność.<BR>';
end;
local licencja=element_licencji_1..((element_licencji_2)and element_licencji_2 or "")..((element_licencji_3)and element_licencji_3 or "")
..element_licencji_4..element_licencji_5..element_licencji_6..element_licencji_7;
return licencja;
end;
function p.Licencja(frame,czy_rozciagnij)
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
local menu_z_licencja;
local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
local licencja=tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki].licencja;
if(licencja)then
if(licencja[1])then
local frame={};
frame.args={licencja[1],licencja[2],licencja[3],licencja[4],licencja[5],licencja[6],licencja[7]};
local ramka_z_licencja='<div style="margin-left:0px;padding:0.1875rem;width:100%;height:auto;box-sizing:border-box;word-break:break-word;">'..p["WstępDoLicencji"](frame)..'</div>';
menu_z_licencja='{{Tabela nawigacyjna|styl=width:'..(czy_rozciagnij and "100%" or "auto")..';font-size:0.875rem;line-height:1.2;background-color:white;|tytuł=<div style="font-size:0.875rem;line-height:1.2;background-color:white;text-align:left;white-space:nowrap;">Licencja</div>|spis='..ramka_z_licencja..'|funkcja=PokazanaWikitabelowaListaMenu}}';
else
return nil;
end;
local frame=mw.getCurrentFrame();
local rozwiniety_wikikod=frame:preprocess(menu_z_licencja);
return rozwiniety_wikikod;
else
return nil;
end;
end;
function p.Autor(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
local licencja=tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki].licencja;
if(tabela_listy_danych_analizy_ksiazki.licencja)then
if(licencja and licencja[1])then
return licencja[1];
end;
end;
end;
p["NazwaLicencjaWykazSpisTreściModułuKsiążki"]=function(frame)
local prawe_menu="";
local parametry_modul=require("Module:Parametry");
local czy_rozciagnij=parametry_modul.CzyTak(frame.args["rozciągnij"])
if(parametry_modul.CzyTak(frame.args[1]))then
prawe_menu='<div style="margin-top:0.3125rem;font-size:1.9em;line-height:1.5625rem;text-align:left;">'..p["NazwaAktualnyModuł"]()..'</div><hr class=\"pierwsza_strona_spis_treści-hr\"/>';
end;
if(parametry_modul.CzyTak(frame.args[2]))then
local licencja=p.Licencja(frame,czy_rozciagnij);
if(licencja~=nil)then
prawe_menu=prawe_menu..licencja;
else
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local uchwyt_strony=mw.title.getCurrentTitle();
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"]();
local element_zdania_kategorii=(nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "na stronach głównych, książek"
or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "na stronach głównych, książek dla dzieci"
or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User)and "na stronach głównych, książek użytkowników"
or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks)and "na stronach głównych, książek brudnopisu projektu"
or "na stronach głównych, publikacji")));
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
local kategoria_braku_licencji=(not tabela_listy_danych_analizy_ksiazki.korzystane_strona_glowna_nie_istnieje)and"[["..nazwy_np_modul.Category..": Brak licencji, "..element_zdania_kategorii.."]]" or "";
prawe_menu=prawe_menu..kategoria_braku_licencji;
end;
end;
if(parametry_modul.CzyTak(frame.args[3]))then
local wykaz_artykulow=p["WykazModułówKsiążki"](frame,czy_rozciagnij);
if(wykaz_artykulow~=nil)then
prawe_menu=prawe_menu.."<hr class=\"pierwsza_strona_spis_treści-hr\"/>"..wykaz_artykulow;
end;
end;
if(parametry_modul.CzyTak(frame.args[4]))then
local spis_tresci=p.TOC(frame,czy_rozciagnij,true);
if(spis_tresci~=nil)then
prawe_menu=prawe_menu.."<hr class=\"pierwsza_strona_spis_treści-hr\"/><div class=\"pierwsza_strona_spis_treści\">"..spis_tresci.."</div>";
end;
end;
local wysokosc=frame.args["wysokość"];
return "<div style=\"padding:0.3125rem;border: solid #aaa 1px;background-color:white;box-sizing:border-box;width:43.75rem;\"><div class=\"pierwsza_strona mw-overflow-y\" style=\"max-height:"..(wysokosc or "100%")..";overflow:auto;width:100%;height:100%;box-sizing:border-box;\"><div style=\"display:flex;flex-direction:column;width:auto;height:auto;box-sizing:border-box;\">"..prawe_menu.."</div></div></div>";
end;
p["SpisTreści"]=function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local nazwa_artykulu=args["artykuł"] or args[1] or "Przykładowy artykuł";
local nazwa_ksiazki=args["książka"] or args[2];
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
local czy_specjalne=parametry_modul.CzyTak(args["specjalne"]);
local czy_parser=parametry_modul.CzyTak(args["parser"]);
local dokumentacja=args["dokumentacja"];
local czy_dokumentacja=parametry_modul.CzyTak(dokumentacja);
local czy_math=parametry_modul.CzyTak(args["wzory"]);
local czy_math_analiza=parametry_modul.CzyTak(args["wzory-analiza"]);
local czy_bez_przypisow=parametry_modul.CzyTak(args["bez przypisów"]);
if(not dokumentacja)then
czy_dokumentacja=czy_analiza or czy_specjalne or czy_parser;
end
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
if(not parametry_modul.CzyTak(nazwa_ksiazki))then
local uzyskana_nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local uzyskana_nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
local uzyskana_nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
nazwa_ksiazki=((uzyskana_nazwa_przestrzeni~="") and (uzyskana_nazwa_przestrzeni..":") or "")..((uzyskana_nazwa_przestrzeni_ksiazki~="") and (uzyskana_nazwa_przestrzeni_ksiazki.."/") or "")..uzyskana_nazwa_ksiazki;
end;
local brak=(nazwa_artykulu and mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]") or nil) or (nazwa_ksiazki and mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]") or nil);
if(brak~=nil)then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"]();
local element_zdania_kategorii=(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,")));
return "[["..nazwy_np_modul.Category..":Nazwy "..element_zdania_kategorii.." w spisach treści, zawierają niedozwolone znaki]]";
end;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_modulu=nazwy_modul["NazwaModułu"](tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni,tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu);
local techniczne_modul=require("Module:Techniczne");
nazwa_ksiazki=html_modul.DecodeHtml(nazwa_ksiazki,true);
nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_ksiazki,[2]=nazwa_modulu,};
local nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true);
nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",};
local pelna_nazwa_strony=((not nazwa_artykulu) or (nazwa_artykulu==""))and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local strona=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_strony);
if(strona)then
pelna_nazwa_strony=strona;
nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_strony);
else
nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_strony);
end;
local szablonowe_modul=require("Module:Szablonowe");
local tekst_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony;
local pelna_nazwa_strony_szablonowa=szablonowe_modul["SzablonowaKompletnaNazwaStrony"](pelna_nazwa_strony,nil,nil);
if((czy_analiza)or(czy_parser))then
tekst_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony=p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(pelna_nazwa_strony,pelna_nazwa_strony_szablonowa,false);
else
tekst_artykulu=p.SpreparowanyWikikodStrony(pelna_nazwa_strony,pelna_nazwa_strony_szablonowa,not czy_dokumentacja);
if(tekst_artykulu)then
if(czy_dokumentacja)then
tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony=szablonowe_modul:UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(pelna_nazwa_strony);
else
tekst_artykulu,tablica_obiektow_strony_dany_modul_uzyskany=szablonowe_modul:KodujWzoryMatematyczneTekstu(tekst_artykulu);
if((not czy_math)and(not czy_math_analiza))then
tablica_obiektow_strony_dany_modul_uzyskany=nil;
end;
end;
end;
end;
local nazwa=args["nazwa"] or args[3];
local czy_nazwa=parametry_modul.CzyTak(nazwa);
local nazwa_strony_artykulu=czy_nazwa and nazwa or nazwa_artykulu;
local dodatek=args["dodatek"] or args[4];
local poziom=tonumber(args["poziom"]) or 6;
local FuncNaglowek=function(czy_red)
local id_alternatywne=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_strony);
local nazwa_optymalizowane=czy_nazwa and (parametry_modul["Odstępy"]{[1]=nazwa,[2]="tak",}) or nil;
local czy_inne_id=(czy_nazwa and (nazwa_optymalizowane~=id_alternatywne));
local dodatek_id=((parametry_modul.CzyTak(dodatek)) and (" "..dodatek) or "");
local id=(czy_nazwa and nazwa or id_alternatywne)..dodatek_id;
local rozdzial=(czy_inne_id and ("<span id=\""..id_alternatywne.."\" class=\"SpisTreści-nazwa\">") or "")..(czy_red and ("<span style=\"color:red\">") or "").."[["..pelna_nazwa_strony.."|"..nazwa_strony_artykulu.."]]"..(czy_red and ("</span>") or "")..dodatek_id..(czy_inne_id and ("</span>") or "");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local naglowek=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstuHn(rozdzial,poziom,id);
return naglowek;
end;
if(not tekst_artykulu)then
if(nazwa_artykulu~="")then
return FuncNaglowek(true);
else
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={[1]="Wywołano szablon z argumentem pierwszym pustym.",tag="span",}};
end;
else
local twor_spisu_tresci=FuncNaglowek(false);
---
local tablica_obiektow_strony_danych_kodow_specjalnych_modul=nil;
if(((czy_dokumentacja)and((czy_specjalne)or(czy_parser)))or((not czy_dokumentacja)and(czy_math_analiza)))then
tekst_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul=szablonowe_modul:KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(tekst_artykulu,pelna_nazwa_strony,pelna_nazwa_strony_szablonowa,tablica_obiektow_strony_dany_modul_uzyskany);
end;
local stronicowyparser_glownafunkcjazbieraniadanych_modul=require("Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron");
local ulozenia_w_menu_spisu_tresci=stronicowyparser_glownafunkcjazbieraniadanych_modul:SpisRzeczyWedlePodanegoTekstu(tekst_artykulu,pelna_nazwa_strony,nil,nil,nil,
tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni,
tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu,
tabela_listy_danych_analizy_ksiazki.nazwa_woluminu,
nazwa_artykulu,
pelna_nazwa_strony,pelna_nazwa_strony_szablonowa,tablica_obiektow_strony_dany_modul_uzyskany or {},nil,tablica_obiektow_strony_danych_kodow_specjalnych_modul,nil,true);
local atrybuty="style=\"margin-left:20px\"";
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local toc=stronicowyparser_potrzebne_modul.TOCSilnik(frame,ulozenia_w_menu_spisu_tresci, atrybuty,czy_bez_przypisow);
local limit=args["limit"];
local czy_limit=parametry_modul.CzyTak(limit);
toc=toc and frame:preprocess(toc) or nil;
return '<div class="toc_ogólnie_spis toc_artykuł toclimit '..(czy_limit and ("toclimit-"..limit) or "")..'">\n'..twor_spisu_tresci..(toc and toc or "")..'</div>';
end;
end;
local function IteratorFunkcja()
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local tabela_wypowiedzi=obiekty_modul.tablica_obiektowych_form;
local licznik=1;
return function()
local tabela_obiektu=tabela_wypowiedzi[licznik];
if(not tabela_obiektu)then return nil;end;
local wartosc1=tabela_obiektu[1];
local wartosc2=tabela_obiektu[4];
licznik=licznik+1;
return wartosc1,wartosc2;
end;
end;
local iterator=IteratorFunkcja();
for nazwa_obiektu,czesc_nazwy_funkcji in iterator do
p["Numer"..czesc_nazwy_funkcji] = function(frame)
local stronicowyparser_numerobiektu_modul=require("Module:StronicowyParser/NumerObiektu");
return stronicowyparser_numerobiektu_modul.NumerObiektu(frame,nazwa_obiektu);
end;
end;
p["AnalizujSzablonemStronicowymArtykuł"]=function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
return "";
end;
function p.formatowanie()
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
return tabela_listy_danych_analizy_ksiazki.formatowanie;
end;
function p.StronaZeSzablonemStronaStart()
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
return tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start;
end;
function p.WstawKategorie(frame)
local stronicowyparser_kategorie_modul=require("Module:StronicowyParser/Kategorie");
return stronicowyparser_kategorie_modul.WstawKategorie(frame);
end;
function p.CzyStronaSubst(frame,czy_wymusic)
if(czy_wymusic)then
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local spis,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki,tab_lista_artykulow_w_ksiazce,tab_lista_zmiennych_w_artykule=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_zmiennych_w_artykule)then return nil;end;
return tab_lista_zmiennych_w_artykule.strona_zbiorcza;
end;
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
if(tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"])then
return "tak";
end;
end;
p["CzyArtykułKsiążki"]=function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
if(tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"])then
return "tak";
end;
end;
return p;
782l9f3p4r2hq6gdekxdcv6cyekys2d
557983
557808
2026-09-29T10:45:56Z
Persino
2851
557983
Scribunto
text/plain
local p = {}
function p.SpreparowanyWikikodStrony(nazwa_modulu,dokumentacja,inkludowana)
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local szablonowe_modul=require("Module:Szablonowe");
local nazwa_modulu_szablonowa=szablonowe_modul["SzablonowaKompletnaNazwaStrony"](nazwa_modulu,nil,nil);
return stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,nazwa_modulu,nazwa_modulu_szablonowa,dokumentacja,inkludowana);
end;
function p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu_aktualna_czy_biezaca,inkludowana)
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local szablonowe_modul=require("Module:Szablonowe");
local nazwa_modulu_aktualna_czy_biezaca_szablonowa=szablonowe_modul["SzablonowaKompletnaNazwaStrony"](nazwa_modulu_aktualna_czy_biezaca,nil,nil);
local tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony=stronicowyparser_tekst_modul.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nil,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,inkludowana,nil);
return tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony;
end;
p["DaneUkładuAutonawigacji"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
local spis,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki,tab_lista_artykulow_w_ksiazce,tab_lista_zmiennych_w_artykule=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
if(not spis)then return nil;end;
return tab_lista_artykulow_w_ksiazce.nazwa_bazowego_spisu,tab_lista_artykulow_w_ksiazce.tab_inne_spisy,tab_lista_artykulow_w_ksiazce.dodatkowe_strony_woluminu;
end;
p["SpisyTreści"]=function(frame,tabela_listy_danych_analizy_ksiazki,bez_json)
local nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly=p["DaneUkładuAutonawigacji"](frame,tabela_listy_danych_analizy_ksiazki);
local tabela={};
tabela.spis_tresci=nazwa_glownego_spisu;
tabela.inne_spisy=tab_inne_spisy;
tabela.dodatkowe_strony_woluminu=dodatkowe_artykuly;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local czy_json=((not bez_json)and(parametry_modul.CzyTak(PobierzParametr("json")))) and true or false;
return czy_json and mw.text.jsonEncode(tabela,mw.text.JSON_PRESERVE_KEYS) or tabela;
end;
p["CzySpisTreści"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local spisy=p["SpisyTreści"](frame,tabela_listy_danych_analizy_ksiazki,true);
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local artykul=PobierzParametr("artykuł");
----
if(artykul)then
artykul=parametry_modul["Odstępy"]{[1]=artykul,[2]="tak",};
if((spisy.spis_tresci)and((parametry_modul.TypeTable(spisy.spis_tresci))and((spisy.spis_tresci[1]==artykul)or(spisy.spis_tresci[2]==artykul))or(spisy.spis_tresci==artykul)))then
return "tak";
else
if((spisy.inne_spisy)and(parametry_modul.TypeTable(spisy.inne_spisy)))then
for _,spis_tresci in ipairs(spisy.inne_spisy)do
if((parametry_modul.TypeTable(spis_tresci))and((spis_tresci[1]==artykul)or(spis_tresci[2]==artykul))or(spis_tresci==artykul))then
return "tak";
end;
end;
end;
end;
end;
end;
p["TekstRozdziałuStrony"]=function(frame)
local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały");
return stronicowyparser_rozdzialy.TekstPoNapisieWprowadzeniaTekstuStrony(frame);
end;
p["KtóraSekcjaStrony"]=function(frame)
local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały");
return stronicowyparser_rozdzialy.NumerSekcjiStrony(frame);
end;
p["ZwróćSekcjęNagłówkaStrony"]=function(frame)
local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały");
return stronicowyparser_rozdzialy.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony(frame);
end;
p["NastępnyArtykuł"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local iterator=stronicowyparser_potrzebne_modul.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki);
if (not iterator)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args();
---
local parametry_modul=require("Module:Parametry");
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local analizowana=parametry_modul.CzyTak(args["analizowana"]);
local numer=tonumber(args[1]) or 0;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
local html_modul=require("Module:Html");
local nazwa_artykulu_bez_naglowka=html_modul["NazwaStronyAdresu"](nazwa_artykulu,true);
local nazwa_artykulu=(not naglowek) and nazwa_artykulu_bez_naglowka or nazwa_artykulu;
----
local juz_tak=false;
local nadstrona_artykulu=(numer>0) and stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu_bez_naglowka,numer) or nil;
----
for nazwa_artykulu_w_bazie,nazwa_linku_artykulu_w_bazie,przekierowanie_artykulu_w_bazie,pelna_nazwa_ksiazki_w_bazie in iterator do
local nazwa_artykulu_w_bazie2=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,naglowek);
local function Nastepny()
if(not nazwa)then
return stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana);
end;
return nazwa_linku_artykulu_w_bazie or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana);
end;
if(juz_tak)then
if(numer>0)then
local nazwa_artykulu_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(nazwa_artykulu_w_bazie,false);
local numer_artykulu_w_bazie=stronicowyparser_potrzebne_modul.PoziomAdresu(nazwa_artykulu_bez_naglowka_w_bazie);
local nadstrona_artykulu_w_bazie=stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu_bez_naglowka_w_bazie,numer);
if((numer==numer_artykulu_w_bazie)and(nadstrona_artykulu==nadstrona_artykulu_w_bazie))then
return Nastepny();
end;
else
return Nastepny();
end;
else
if(nazwa_artykulu_w_bazie2==nazwa_artykulu)then
juz_tak=true;
end;
end;
end;
if(juz_tak)then
return "";
else
return "(błąd)";
end;
end;
p["PoprzedniArtykuł"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local iterator=stronicowyparser_potrzebne_modul.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki);
if (not iterator)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args();
---
local parametry_modul=require("Module:Parametry");
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local analizowana=parametry_modul.CzyTak(args["analizowana"]);
local numer=tonumber(args[1]) or 0;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
local html_modul=require("Module:Html");
local nazwa_artykulu_bez_naglowka=html_modul["NazwaStronyAdresu"](nazwa_artykulu,true);
local nazwa_artykulu=(not naglowek) and nazwa_artykulu_bez_naglowka or nazwa_artykulu;
----
local juz_tak=false;
local nadstrona_artykulu=(numer>0) and stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu_bez_naglowka,numer) or nil;
----
local artykul="";
----
for nazwa_artykulu_w_bazie,nazwa_linku_artykulu_w_bazie,przekierowanie_artykulu_w_bazie,pelna_nazwa_ksiazki_w_bazie in iterator do
local nazwa_artykulu_w_bazie2=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,naglowek);
if(numer>0)then
local nazwa_artykulu_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(nazwa_artykulu_w_bazie,false);
local numer_artykulu_w_bazie=stronicowyparser_potrzebne_modul.PoziomAdresu(nazwa_artykulu_bez_naglowka_w_bazie);
local nadstrona_artykulu_w_bazie=stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu_bez_naglowka_w_bazie,numer);
if((numer==numer_artykulu_w_bazie)and(nadstrona_artykulu==nadstrona_artykulu_w_bazie))then
if(nazwa_artykulu_w_bazie2==nazwa_artykulu)then
return artykul;
else
artykul=(not nazwa) and stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana) or (nazwa_linku_artykulu_w_bazie or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana));
end;
else
if(artykul~="")then
return artykul;
else
artykul="";
end;
end;
else
if(nazwa_artykulu_w_bazie2==nazwa_artykulu)then
return artykul;
else
artykul=(not nazwa) and stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana) or (nazwa_linku_artykulu_w_bazie or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana));
end;
end;
end;
return "(błąd)";
end;
p["PoziomNazwyArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
return stronicowyparser_potrzebne_modul.PoziomAdresu(nazwa_artykulu);
end;
p["PierwszyArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local iterator=stronicowyparser_potrzebne_modul.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki);
if (not iterator)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local analizowana=parametry_modul.CzyTak(args["analizowana"]);
local numer=tonumber(args[1]) or 0;
local args=stronicowyparser_potrzebne_modul:Args();
for tab_artykul,nazwa_linku,przekierowanie,pelna_nazwa_ksiazki in iterator do
local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab_artykul,czy_naglowek);
local function PierwszyArtykul()
if(not nazwa)then
return stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(artykul,pelna_nazwa_ksiazki,przekierowanie,czy_naglowek,ksiazka,analizowana);
else
return nazwa_linku or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(artykul,pelna_nazwa_ksiazki,przekierowanie,czy_naglowek,ksiazka,analizowana);
end;
end;
if(numer==0)then
return PierwszyArtykul();
else
local numer_artykulu_w_bazie=stronicowyparser_potrzebne_modul.PoziomAdresu(artykul);
if(numer==numer_artykulu_w_bazie)then
return PierwszyArtykul();
end;
end;
end;
return "(błąd)";
end;
p["OstatniArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local iterator=stronicowyparser_potrzebne_modul.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki);
if (not iterator)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local analizowana=parametry_modul.CzyTak(args["analizowana"]);
local numer=tonumber(args[1]) or 0;
local ostatni_artykul=nil;
for tab_artykul,nazwa_linku,przekierowanie,pelna_nazwa_ksiazki in iterator do
local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab_artykul,czy_naglowek);
local function OstatniArtykul()
if(not nazwa)then
ostatni_artykul=stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(artykul,pelna_nazwa_ksiazki,przekierowanie,czy_naglowek,ksiazka,analizowana);
else
ostatni_artykul=nazwa_linku or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(artykul,pelna_nazwa_ksiazki,przekierowanie,czy_naglowek,ksiazka,analizowana);
end;
end;
if(numer==0)then
OstatniArtykul();
else
local numer_artykulu_w_bazie=stronicowyparser_potrzebne_modul.PoziomAdresu(artykul);
if(numer==numer_artykulu_w_bazie)then
OstatniArtykul();
end;
end;
end;
if(ostatni_artykul)then return ostatni_artykul;end;
return "(błąd)";
end;
p["PomiędzyNagłówek"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
return stronicowyparser_potrzebne_modul:LosowyNapisProwadzeniaTekstuBezPierwszegoOrazOstatniegoNapisuSpisuRzeczy(frame);
end;
p["LosowyNagłówek"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
return stronicowyparser_potrzebne_modul:LosowyNapisProwadzeniaTekstuWoluminu(frame);
end;
p["PierwszyNagłówek"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
return stronicowyparser_potrzebne_modul:PierwszyNapisWprowadzeniaTekstu(frame);
end;
p["OstatniNagłówek"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
return stronicowyparser_potrzebne_modul:OstatniNapisWprowadzeniaTekstu(frame);
end;
p["LiczbaNagłówkówSpisu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
return stronicowyparser_potrzebne_modul:LiczbaNapisowaWprowadzeniaTekstu(frame);
end;
p["PomiędzyArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local val=stronicowyparser_potrzebne_modul:ObliczeniaInformacje(frame);
if(not val)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local parametry_modul=require("Module:Parametry");
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local analizowana=parametry_modul.CzyTak(args["analizowana"]);
local element=stronicowyparser_potrzebne_modul:LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu(frame,numer) or nil;
if(not element)then return "(błąd)";end;
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local czy_table=parametry_modul.TypeTable(element);
if(not nazwa)then return czy_table and stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(element[1],element[4],element[3],naglowek,ksiazka,analizowana) or ((not czy_table) and element or "(błąd)");end;
return czy_table and (element[2] or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(element[1],element[4],element[3],naglowek,ksiazka,analizowana)) or ((not czy_table) and element or "(błąd)");
end;
p["LosowyArtykuł"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local val=stronicowyparser_potrzebne_modul:ObliczeniaInformacje(frame);
if(not val)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local parametry_modul=require("Module:Parametry");
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local analizowana=parametry_modul.CzyTak(args["analizowana"]);
local element=stronicowyparser_potrzebne_modul:LosowaStronaWoluminu(frame,numer);
if(not element)then return "(błąd)";end;
local nazwa=parametry_modul.CzyTak(args["nazwa"]);
local czy_table=parametry_modul.TypeTable(element);
if(not nazwa)then return czy_table and stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(element[1],element[4],element[3],naglowek,ksiazka,analizowana) or ((not czy_table) and element or "(błąd)");end;
return czy_table and (element[2] or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(element[1],element[4],element[3],naglowek,ksiazka,analizowana)) or ((not czy_table) and element or "(błąd)");
end;
p["SubNazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 0;
local krok=tonumber(args[2])or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok);
end;
p["NazwaNadArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local numer=tonumber(args[1]) or 1;
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer);
end;
p["NazwaLinkuArtykułu"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_tabela_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
if(not czy_tabela_artykulu)then
local nazwa_artykulu_z_parametrami_i_naglowkiem=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul_w_bazie[1],czy_naglowek);
if(nazwa_artykulu_z_parametrami_i_naglowkiem==nazwa_artykulu)then
return artykul_w_bazie[1];
end;
else
local nazwa_artykulu_z_parametrami_i_naglowkiem=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul_w_bazie[1][1],czy_naglowek);
if(nazwa_artykulu_z_parametrami_i_naglowkiem==nazwa_artykulu)then
return artykul_w_bazie[1][2];
end;
end;
end;
end;
end;
return "(błąd)";
end;
p["LiczbaArtykułówKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykul=(not naglowek) and {} or nil;
local i=0;
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_tabela_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local nazwa_artykulu=czy_tabela_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
local artykul=(not naglowek) and stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(nazwa_artykulu,false) or nil;
if(naglowek or not tab_artykul[artykul])then
if(not naglowek)then
tab_artykul[artykul]=true;
end;
i=i+1;
end;
end;
end;
end;
return i;
end;
p["LiniaArtykułuKsiążki"]=function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args();
local parametry_modul=require("Module:Parametry");
local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
local parametry_modul=require("Module:Parametry");
local args=stronicowyparser_potrzebne_modul:Args();
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]);
if(not uzupelniaj_sekcje_artykulow)then
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_tabela_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local artykul_ksiazki=czy_tabela_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
artykul_ksiazki=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul_ksiazki,czy_naglowek);
if(artykul_ksiazki==nazwa_artykulu)then
if(not czy_analiza)then
return artykul_w_bazie[3];
else
local function AnalizaLiniiArtykolow()
local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})");
if(czy_spis_tresci)then
local szablonowe_modul=require("Module:Szablonowe");
local parametry_szablony,nazwa_szablonu_wywolania,modyfikatory_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](czy_spis_tresci);
local nazwa_artykulu=parametry_szablony[1];
------
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame);
local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]";
local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link);
return linia2;
else
local linia2=artykul_w_bazie[3];
local czy_spis_tresci=mw.ustring.match(linia2,"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})")
or mw.ustring.match(linia2,"({{%s*[Ss]r%s*|[^{}]*}})");
if(czy_spis_tresci)then
local linia2,_=mw.ustring.gsub(linia2,"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|");
local linia2,_=mw.ustring.gsub(linia2,"({{%s*[Ss]r%s*|)","%1astandardowo=tak|");
return linia2;
else
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame);
local function adresuj_linki(a,b)
return "[["..nazwa_ksiazki.."/"..a..(b or ("|"..a)).."]]";
end;
local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki);
artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki);
return artykul;
end;
end;
end;
return AnalizaLiniiArtykolow();
end
end;
end;
end;
end;
else
if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then
local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$");
if(parametry_modul["CzyTakCiąg"](naglowek))then
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame)
return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]";
end;
end;
end;
end;
p["AktualnaKsiążka"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
return stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame) or ((not __error)and "(błąd)" or nil);
end;
p["AktualnaKsiążkaArtykułu"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args();
----
local parametry_modul=require("Module:Parametry");
local ksiazka=parametry_modul.CzyTak(args["książka"]);
local nazwy_modul=require("Module:Nazwy");
----
local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame);
local nazwa_artykulu_ksiazki=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame);
----
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_tabela_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local nazwa_artykulu_dana=czy_tabela_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
nazwa_artykulu_dana=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_dana,czy_naglowek);
if(nazwa_artykulu_ksiazki==nazwa_artykulu_dana)then
if(not czy_tabela_artykulu)then
return nazwa_ksiazki;
else
local pelna_nazwa_ksiazki=artykul_w_bazie[1][4];
if((pelna_nazwa_ksiazki)and(pelna_nazwa_ksiazki[4]))then
return nazwy_modul["NazwaModułu"](pelna_nazwa_ksiazki[1],pelna_nazwa_ksiazki[2],pelna_nazwa_ksiazki[3],"")
else
return nazwa_ksiazki;
end;
end;
end;
end;
end;
end;
return ((not __error)and "(błąd)" or nil)
end;
p["NazwaAktualnyArtykuł"]=function(frame,__error)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
return stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame) or ((not __error)and "(błąd)" or nil);
end;
p["PobierzNumerNagłówka"]=function(frame)
local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaNagłówkówKsiążek");
return stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzNumerNagłówka"](frame);
end;
p["PobierzNazwęNagłówka"]=function(frame)
local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaNagłówkówKsiążek");
return stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzNazwęNagłówka"](frame);
end;
p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek");
local wartosc,_=stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzNumerArtykułu"](frame,tabela_listy_danych_analizy_ksiazki);
return wartosc;
end;
p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek");
local wartosc,_=stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzNazwęArtykułu"](frame,tabela_listy_danych_analizy_ksiazki);
return wartosc;
end;
p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki,kodowanie_nie_json)
local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek");
return stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzDaneKsiążki"](frame,tabela_listy_danych_analizy_ksiazki,kodowanie_nie_json);
end;
p["ListaNagłówkówKsiążki"] = function(frame)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty");
local parametry_modul=require("Module:Parametry");
local odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=stronicowyparser_obiekty.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu;
local tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu);
setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local czy_sa_rozdzialy=nil;
local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame);
local args=stronicowyparser_potrzebne_modul:Args();
local wikikod="";
local linki_modul=require("Module:Linki");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
local numer_rozdzialu=tab_lista[1][2][1];
local czy_centrowany=tab_lista[1][2][4];
if((numer_rozdzialu)and(numer_rozdzialu>0)and(not czy_centrowany))then
if(not tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial])then
wikikod=((wikikod~="")and (wikikod.." — ") or "")..linki_modul["Link wewnętrzny"]{["strona"]=pelna_nazwa_ksiazki,["nagłówek"]=rozdzial,["nazwa"]=rozdzial,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],};
end;
czy_sa_rozdzialy=true;
end;
end;
if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end;
return wikikod;
end;
p["ArtykułSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
local nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame,true);
local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu");
local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki");
local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu);
local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki);
if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki;
elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then
return "(błąd)";
end;
local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu;
local nazwy_modul=require("Module:Nazwy");
if(nazwa_strony==nazwy_modul["PEŁNANAZWASTRONY"]())then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={[1]="Próbowano załadować bieżącą stronę.",},};
end;
local szablonowe_modul=require("Module:Szablonowe");
local szablon=szablonowe_modul.NazwaSzablonu(nazwa_strony);
local zawartosc=frame:expandTemplate{title=szablon,args={},};
--Tworzenie ramek div--
local divramka=mw.html.create('div');
divramka:addClass('artykułsubst');
local poddivramka=mw.html.create('div');
poddivramka:wikitext(nazwa_strony);
poddivramka:addClass("adres");
poddivramka:css("display","none");
divramka:node(poddivramka);
local divzawartosc=mw.html.create('div');
divzawartosc:addClass("zawartość");
divzawartosc:css("display","block");
divzawartosc:wikitext(zawartosc);
divramka:node(divzawartosc)
--Zwracanie ramki div--
return tostring(divramka:allDone());
end;
p["KsiążkaSubst"] = function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa_przestrzeni_nazw=PobierzParametr("nazwa przestrzeni nazw");
local nazwa_jednostki=PobierzParametr("nazwa jednostki");
if((not nazwa_przestrzeni_nazw)and(not nazwa_jednostki))then
local str=tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"];
if(str)then
str=frame:preprocess(str);
return str;
end;
return nil;
end;
local nazwy_modul=require("Module:Nazwy");
local tabela_nazw={};
local pelnanazwastrony=(nazwa_przestrzeni_nazw or nazwy_modul["NAZWAPRZESTRZENI"](nil,tabela_nazwy))..":"..(nazwa_jednostki or nazwy_modul["NAZWASTRONY"](nil,tabela_nazwy));
local ksiazkowe_modul=require("Module:Książkowe");
local tabela_nazw={};
local nazwa_przestrzeni=ksiazkowe_modul["NazwaPrzestrzeni"](pelnanazwastrony,tabela_nazw);
local nazwa_przestrzeni_ksiazki=ksiazkowe_modul["NazwaPrzestrzeniKsiążki"](pelnanazwastrony,tabela_nazw);
local nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="") and ksiazkowe_modul["NazwaTytułuKsiążki"](pelnanazwastrony,tabela_nazw) or ksiazkowe_modul["NazwaKsiążki"](pelnanazwastrony,tabela_nazw);
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelnanazwastrony,tabela_nazw);
local str=((((tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInneRozdział"]or{})[nazwa_przestrzeni]or{})[nazwa_przestrzeni_ksiazki]or{})[nazwa_ksiazki]or{})[nazwa_artykulu];
if(str)then
str=frame:preprocess(str);
return str;
end;
local str=(((tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInne"]or{})[nazwa_przestrzeni]or{})[nazwa_przestrzeni_ksiazki]or{})[nazwa_ksiazki];
if(str)then
str=frame:preprocess(str);
return str;
end;
return nil;
end;
p["StronaSubst"] = function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame,true);
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa_przestrzeni_nazw=PobierzParametr("nazwa przestrzeni nazw");
local nazwa_jednostki=PobierzParametr("nazwa jednostki");
local tab_stronasubst;
if((not nazwa_przestrzeni_nazw)and(not nazwa_jednostki))then
tab_stronasubst=tabela_listy_danych_analizy_ksiazki["StronaSubst"];
if(not tab_stronasubst)then return;end;
else
local nazwy_modul=require("Module:Nazwy");
local tabela_nazw={};
local pelnanazwastrony=(nazwa_przestrzeni_nazw or nazwy_modul["NAZWAPRZESTRZENI"](nil,tabela_nazwy))..":"..(nazwa_jednostki or nazwy_modul["NAZWASTRONY"](nil,tabela_nazwy));
local tabela_nazw={};
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_przestrzeni=ksiazkowe_modul["NazwaPrzestrzeni"](pelnanazwastrony,tabela_nazw);
local nazwa_przestrzeni_ksiazki=ksiazkowe_modul["NazwaPrzestrzeniKsiążki"](pelnanazwastrony,tabela_nazw);
local nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="") and ksiazkowe_modul["NazwaTytułuKsiążki"](pelnanazwastrony,tabela_nazw) or ksiazkowe_modul["NazwaKsiążki"](pelnanazwastrony,tabela_nazw);
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelnanazwastrony,tabela_nazw);
tab_stronasubst=(((tabela_listy_danych_analizy_ksiazki["StronaSubstInne"] or {})[nazwa_przestrzeni]or{})[nazwa_przestrzeni_ksiazki]or{})[nazwa_ksiazki];
if(not tab_stronasubst)then return;end;
end;
local pierwszy=parametry_modul["Odstępy"]{nazwa=args[1],["wewnątrz"]="tak",};
local tab_strona=tab_stronasubst[pierwszy];
if(not tab_strona)then return;end;
local link=args["link"];
local czy_link=parametry_modul.CzyTak(link);
local stronasubst=tab_strona[(czy_link and "tak" or "")];
stronasubst=frame:preprocess(stronasubst);
return stronasubst;
end;
p["CzyStronęNumerować"] = function(frame)
local strona=frame.args[1];
local nazwy_modul=require("Module:Nazwy");
strona=nazwy_modul["PEŁNANAZWASTRONY"](strona);
local pudelko_modul=require("Module:Pudełko");
if(strona==pudelko_modul["Strona główna tego projektu"](frame))then
return;
end;
if(strona==pudelko_modul["Strona główna dla dzieci tego projektu"](frame))then
return;
end;
if(mw.ustring.match(strona,"^Szablon:Strona główna/"))then
return;
end;
local zbiory={
["Szablon:Nowe podręczniki miesiąca/Zwycięzca"]=true,
["Wikibooks:Polecane książki"]=true,
["Szablon:Wyróżnienia książek miesiąca/Wyróżniony"]=true,
}
if(zbiory[strona])then
return;
end;
if(mw.ustring.match(strona,"^Szablon:Polecane książki/")
or(mw.ustring.match(strona,"^Szablon:Nowe podręczniki miesiąca/"))
or(mw.ustring.match(strona,"^Szablon:Wyróżnienia książek miesiąca/"))
)then
return;
end;
return "tak";
end;
function p.HNumer(frame)
local parametry_modul=require("Module:Parametry");
local p=parametry_modul.PobierzFrameEwentualnieParent(frame);
if((not p) or (not p.args[1]))then
local blad_module=require("Module:Błąd");
local frame2=p:newChild{args={[1]="Podano złe parametry w szablonie: [[Szablon:HLiczba]].",["tag"]="span",},}
blad_module.error(frame2);
return;
end;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local naglowek,licznik=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(p.args[1]);
if(licznik>6)then
local id=p.args["id"];
local styl=p.args["styl"];
local klasa=p.args["klasa"];
local atrybuty=p.args["atrybuty"];
local parametry_modul=require("Module:Parametry");
return "<h6"..(parametry_modul.CzyTak(id)and " id=\""..id.."\"" or "")
..(parametry_modul.CzyTak(styl)and " style=\""..styl.."\"" or "")
.." class=\"mw-hnumber mw-hnumber-"..licznik..((parametry_modul.CzyTak(klasa)) and (" "..klasa) or "").."\""
..(parametry_modul.CzyTak(atrybuty)and " "..atrybuty or "")
..">"..naglowek.."</h6>";
elseif(licznik<1)then
local blad_module=require("Module:Błąd");
return blad_module.error{args={[1]="Nie podano nagłówka w szablonie: [[Szablon:HLiczba]].",["tag"]="strong",},};
else
local id=p.args["id"];
local styl=p.args["styl"];
local klasa=p.args["klasa"];
local atrybuty=p.args["atrybuty"];
local parametry_modul=require("Module:Parametry");
return "<h"..licznik..(parametry_modul.CzyTak(id)and " id=\""..id.."\"" or "")
..(parametry_modul.CzyTak(styl)and " style=\""..styl.."\"" or "")
..((parametry_modul.CzyTak(klasa)) and " class=\""..klasa.."\"" or "")
..(parametry_modul.CzyTak(atrybuty)and " "..atrybuty or "")..">"..naglowek.."</h"..licznik..">";
end;
end;
function p.TOC(frame,czy_rozciagnij,gdy_pusty_spis_tresci)
local nazwy_modul=require("Module:Nazwy");
local parametry_modul=require("Module:Parametry");
local ksiazkowe_modul=require("Module:Książkowe");
local html_modul=require("Module:Html");
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
local uzyskana_nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local uzyskana_nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
local uzyskana_nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
local uzyskana_nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu;
local pelna_nazwa_strony=((uzyskana_nazwa_przestrzeni~="") and (uzyskana_nazwa_przestrzeni..":") or "")..((uzyskana_nazwa_przestrzeni_ksiazki~="") and (uzyskana_nazwa_przestrzeni_ksiazki.."/") or "")..uzyskana_nazwa_ksiazki..((uzyskana_nazwa_artykulu~="")and ("/"..uzyskana_nazwa_artykulu) or "");
local args=parametry_modul.PobierzArgsParametry(frame,true);
local nazwa_ksiazki;local nazwa_artykulu;
if(args[1])then
nazwa_artykulu=args[1];
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;
if(args[2])then
nazwa_ksiazki=args[2];
nazwa_ksiazki=html_modul.DecodeHtml(nazwa_ksiazki,true);
local techniczne_modul=require("Module:Techniczne");
nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_ksiazki,[2]=pelna_nazwa_strony,};
end;
local nazwa_artykulu=parametry_modul.CzyTak(nazwa_artykulu) and nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_strony);
local czy_nazwa_ksiazki=parametry_modul.CzyTak(nazwa_ksiazki);
local podana_nazwa_przestrzeni_nazw=czy_nazwa_ksiazki and (nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki)) or ksiazkowe_modul["NazwaPrzestrzeni"](pelna_nazwa_strony);
local podana_nazwa_jednostki=czy_nazwa_ksiazki and (nazwy_modul["NAZWAKSIĄŻKI"](nazwa_ksiazki)..((nazwa_artykulu~="")and ("/"..nazwa_artykulu) or "")) or ksiazkowe_modul["NazwaArtykułu"](pelna_nazwa_strony);
local args_nowe={
["nazwa przestrzeni nazw"] = podana_nazwa_przestrzeni_nazw,
["nazwa jednostki"] = podana_nazwa_jednostki,
};
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu{args=args_nowe};
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu{args=args_nowe};
local spis,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,lista_artykulow_w_ksiazkach_w_danej_przestrzeni_ksiazki,tab_lista_artykulow_w_ksiazce,tab_lista_zmiennych_w_artykule=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu{args=args_nowe};
local self_zmienna,tabela_listy_danych_analizy_ksiazki=stronicowyparser_potrzebne_modul:Self();
if((not tab_lista_zmiennych_w_artykule)and(not tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza))then
local blad_modul=require("Module:Błąd");
return blad_modul.error{tab="span",tekst="Nie znalazłem takiej książki."};
end;
local czy_nie_aktualny=(
(self_zmienna.nazwa_przestrzeni_podana~=self_zmienna.nazwa_przestrzeni)
or(self_zmienna.nazwa_przestrzeni_woluminu_podana~=self_zmienna.nazwa_przestrzeni_woluminu)
or(self_zmienna.nazwa_woluminu_podana~=self_zmienna.nazwa_woluminu)
or (self_zmienna.nazwa_podstrony_woluminu_podana~=self_zmienna.nazwa_podstrony_woluminu)
);
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
if ((tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza)or(tab_lista_zmiennych_w_artykule and tab_lista_zmiennych_w_artykule.TOC or nil)) then
local spis_tresci_artykulu=stronicowyparser_potrzebne_modul.TOC(frame,tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza or tab_lista_zmiennych_w_artykule.TOC, czy_nie_aktualny,czy_rozciagnij);
return spis_tresci_artykulu;
elseif(not gdy_pusty_spis_tresci)then
local spis_tresci_artykulu=stronicowyparser_potrzebne_modul.TOC(frame,nil,czy_nie_aktualny,czy_rozciagnij);
return spis_tresci_artykulu;
end;
end;
p["WykazModułówKsiążki"]=function(frame,czy_rozciagnij)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local self_zmienna=stronicowyparser_potrzebne_modul:Self();
local nazwa_ksiazki=self_zmienna.nazwa_woluminu;
local nazwa_przestrzeni_ksiazki=self_zmienna.nazwa_przestrzeni_woluminu;
local nazwa_przestrzeni=self_zmienna.nazwa_przestrzeni;
local parametry_modul=require("Module:Parametry");
local spis_ksiazkowy=parametry_modul.CzyTak(frame.args["spis książkowy"]);
local spis_rzeczy=parametry_modul.CzyTak(frame.args["spis rzeczy"]);
local tylko_naglowki=parametry_modul.CzyTak(frame.args["nagłówki"]);
local artykul=frame.args["artykuł"];
local wysokosc=frame.args["wysokość"];
local szerokosc=frame.args["szerokość"];
local wykaz_modulow_w_liscie="";
local czy_spis_tresci=nil;
local i=1;
local czy_spisy=nil;
for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local czy_nienilowy_rozdzial=tab_lista[1][2][1];
local poziom_rozdzialu=czy_nienilowy_rozdzial or 0;
if((artykul)and(poziom_rozdzialu==1))then
if(((m==1)and(not czy_spisy))or((m>1)and(czy_spisy)))then
local spis=tab_lista[1]["spis"];
if(spis)then
if(not czy_spis_tresci)then
local spis_tresci_dany=spis[1];
czy_spis_tresci=(artykul==spis_tresci_dany);
czy_spisy=true;
else
break;
end;
else
local dodatkowe=tab_lista[1]["dodatkowe"];
if(dodatkowe)then
break;
end;
end;
end;
end;
if((not artykul)or((artykul)and((not czy_spisy)or((czy_spisy)and(czy_spis_tresci)))))then
if(tab_lista[2])then
for _,tab_pozycja in ipairs(tab_lista[2])do
local sformatowana_nazwa_artykulu;
local nazwa;
if(type(tab_pozycja[1])~="table")then
sformatowana_nazwa_artykulu=mw.ustring.gsub(tab_pozycja[1],"_"," ");
nazwa=sformatowana_nazwa_artykulu;
else
sformatowana_nazwa_artykulu=mw.ustring.gsub(tab_pozycja[1][1],"_"," ");
nazwa=tab_pozycja[1][2] or sformatowana_nazwa_artykulu;
end;
local id=tab_pozycja[4]
if(not tylko_naglowki or id)then
if(not spis_ksiazkowy)then
wykaz_modulow_w_liscie=((wykaz_modulow_w_liscie~="") and (wykaz_modulow_w_liscie.."\n") or "")..'<li>[['..((not spis_rzeczy or not id)and (((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="")and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki.."/") or "#")..sformatowana_nazwa_artykulu.."|<span class=\"tocnumber\">"..i.."</span><span class=\"toctext\">"..nazwa..'</span>]]</li>';
else
wykaz_modulow_w_liscie=((wykaz_modulow_w_liscie~="") and (wykaz_modulow_w_liscie.."\n") or "")..'{{SpisZw||[['..((not spis_rzeczy or not id)and (((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="")and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki.."/") or "#")..sformatowana_nazwa_artykulu.."|"..nazwa.."]]|"..i.."|100%}}";
end;
i=i+1;
end;
end;
end;
end;
end;
if(wykaz_modulow_w_liscie=="")then return nil;end;
if(not spis_ksiazkowy)then
wykaz_modulow_w_liscie="<ul>"..wykaz_modulow_w_liscie.."</ul>";
wykaz_modulow_w_liscie='<div class="toc_ogólnie_spis toc_wykaz" style="width:100%;max-height:25rem;overflow:auto;">'..wykaz_modulow_w_liscie.."</div>";
wykaz_modulow_w_liscie='{{Tabela nawigacyjna|styl=width:'..(czy_rozciagnij and "100%" or (szerokosc or "auto"))..';max-width:100%;font-size:0.875rem;line-height:1.2;background-color:white;|tytuł=<div style="font-size:0.875rem;line-height:1.2;background-color:white;text-align:left;white-space:nowrap;">Wykaz modułów w książce</div>|spis='..wykaz_modulow_w_liscie..'|funkcja=UkrytaWikitabelowaListaMenu}}';
else
wykaz_modulow_w_liscie="<div class=\"toc_wykaz mw-overflow-y\" style=\""..(wysokosc and ("max-height:"..wysokosc..";overflow:auto;") or "").."border:solid #aaa 1px;padding:0.625rem;width:"..(czy_rozciagnij and "100%" or (szerokosc or "auto"))..";max-width:100%;box-sizing:border-box;background-color:white;\">"..wykaz_modulow_w_liscie.."</div>";
end;
local rozwiniety_wikikod=frame:preprocess(wykaz_modulow_w_liscie);
return rozwiniety_wikikod;
end;
p["NazwaAktualnyModuł"]=function()
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
local nazwy_np_modul=mw.loadData('Moduł:Nazwy/Np');
local nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu;
if(nazwa_artykulu==nil)then
return "[["..nazwy_np_modul.Category..": Nie można wygenerować nazwy strony]]";
else
return nazwa_artykulu;
end;
end;
p["WstępDoLicencji"]=function(frame)
local element_licencji_1='<strong>Autor:</strong> '..frame.args[1]..'<BR>';
local element_licencji_2;
if((frame.args[2]~='')and(frame.args[2]~=nil))then
element_licencji_2=frame.args[2]..'<BR>';
end;
local element_licencji_3;
if((frame.args[3]~='')and(frame.args[3]~=nil))then
element_licencji_3='<strong>Email:</strong> '..frame.args[3]..'<BR>';
end;
local element_licencji_4;
if((frame.args[4]~='')and(frame.args[4]~=nil))then
element_licencji_4='<strong>Dotyczy:</strong> '..frame.args[4].."<BR>";
else
element_licencji_4='<strong>Dotyczy:</strong> książki, do której należy ta strona, oraz w niej zawartych stron i w nich podstron, a także w nich kolumn, wraz z zawartościami.<BR>';
end;
local element_licencji_5;
if((frame.args[5]~='')and(frame.args[5]~=nil))then
element_licencji_5=frame.args[5].."<BR>";
else
element_licencji_5='Użytkownika książki, do której należy ta strona, oraz w niej zawartych stron i w nich podstron, a także w nich kolumn, wraz z zawartościami nie zwalnia z odpowiedzialności prawnoautorskiej nieprzeczytanie warunków licencjonowania.<BR>';
end;
local element_licencji_6;
if((frame.args[6]~='')and(frame.args[6]~=nil))then
element_licencji_6='<strong>Umowa prawna:</strong> '..frame.args[6]..'<BR>';
else
element_licencji_6='<strong>Umowa prawna:</strong> [http://creativecommons.org/licenses/by-sa/3.0/deed.pl Creative Commons: uznanie autorstwa, na tych samych warunkach, z możliwością obowiązywania dodatkowych ograniczeń].<BR>';
end;
local element_licencji_7;
if((frame.args[7]~='')and(frame.args[7]~=nil))then
element_licencji_7=frame.args[7].."<BR>";
else
element_licencji_7='Autor tej książki dołożył wszelką staranność, aby informacje zawarte w książce były poprawne i najwyższej jakości, jednakże nie udzielana jest żadna gwarancja, czy też rękojma. Autor nie jest odpowiedzialny za wykorzystanie informacji zawarte w książce, nawet jeśli wywołaby jakąś szkodę, straty w zyskach, zastoju w prowadzeniu firmy, przedsiębiorstwa lub spółki bądź utraty informacji, niezależnie czy autor (a nawet [https://pl.wikibooks.org Wikibooks]) został powiadomiony o możliwości wystąpienie szkód. Informacje zawarte w książce mogą być wykorzystane tylko na własną odpowiedzialność.<BR>';
end;
local licencja=element_licencji_1..((element_licencji_2)and element_licencji_2 or "")..((element_licencji_3)and element_licencji_3 or "")
..element_licencji_4..element_licencji_5..element_licencji_6..element_licencji_7;
return licencja;
end;
function p.Licencja(frame,czy_rozciagnij)
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
local menu_z_licencja;
local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
local licencja=tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki].licencja;
if(licencja)then
if(licencja[1])then
local frame={};
frame.args={licencja[1],licencja[2],licencja[3],licencja[4],licencja[5],licencja[6],licencja[7]};
local ramka_z_licencja='<div style="margin-left:0px;padding:0.1875rem;width:100%;height:auto;box-sizing:border-box;word-break:break-word;">'..p["WstępDoLicencji"](frame)..'</div>';
menu_z_licencja='{{Tabela nawigacyjna|styl=width:'..(czy_rozciagnij and "100%" or "auto")..';font-size:0.875rem;line-height:1.2;background-color:white;|tytuł=<div style="font-size:0.875rem;line-height:1.2;background-color:white;text-align:left;white-space:nowrap;">Licencja</div>|spis='..ramka_z_licencja..'|funkcja=PokazanaWikitabelowaListaMenu}}';
else
return nil;
end;
local frame=mw.getCurrentFrame();
local rozwiniety_wikikod=frame:preprocess(menu_z_licencja);
return rozwiniety_wikikod;
else
return nil;
end;
end;
function p.Autor(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
local licencja=tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki].licencja;
if(tabela_listy_danych_analizy_ksiazki.licencja)then
if(licencja and licencja[1])then
return licencja[1];
end;
end;
end;
p["NazwaLicencjaWykazSpisTreściModułuKsiążki"]=function(frame)
local prawe_menu="";
local parametry_modul=require("Module:Parametry");
local czy_rozciagnij=parametry_modul.CzyTak(frame.args["rozciągnij"])
if(parametry_modul.CzyTak(frame.args[1]))then
prawe_menu='<div style="margin-top:0.3125rem;font-size:1.9em;line-height:1.5625rem;text-align:left;">'..p["NazwaAktualnyModuł"]()..'</div><hr class=\"pierwsza_strona_spis_treści-hr\"/>';
end;
if(parametry_modul.CzyTak(frame.args[2]))then
local licencja=p.Licencja(frame,czy_rozciagnij);
if(licencja~=nil)then
prawe_menu=prawe_menu..licencja;
else
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local uchwyt_strony=mw.title.getCurrentTitle();
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"]();
local element_zdania_kategorii=(nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "na stronach głównych, książek"
or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "na stronach głównych, książek dla dzieci"
or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User)and "na stronach głównych, książek użytkowników"
or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks)and "na stronach głównych, książek brudnopisu projektu"
or "na stronach głównych, publikacji")));
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
local kategoria_braku_licencji=(not tabela_listy_danych_analizy_ksiazki.korzystane_strona_glowna_nie_istnieje)and"[["..nazwy_np_modul.Category..": Brak licencji, "..element_zdania_kategorii.."]]" or "";
prawe_menu=prawe_menu..kategoria_braku_licencji;
end;
end;
if(parametry_modul.CzyTak(frame.args[3]))then
local wykaz_artykulow=p["WykazModułówKsiążki"](frame,czy_rozciagnij);
if(wykaz_artykulow~=nil)then
prawe_menu=prawe_menu.."<hr class=\"pierwsza_strona_spis_treści-hr\"/>"..wykaz_artykulow;
end;
end;
if(parametry_modul.CzyTak(frame.args[4]))then
local spis_tresci=p.TOC(frame,czy_rozciagnij,true);
if(spis_tresci~=nil)then
prawe_menu=prawe_menu.."<hr class=\"pierwsza_strona_spis_treści-hr\"/><div class=\"pierwsza_strona_spis_treści\">"..spis_tresci.."</div>";
end;
end;
local wysokosc=frame.args["wysokość"];
return "<div style=\"padding:0.3125rem;border: solid #aaa 1px;background-color:white;box-sizing:border-box;width:43.75rem;\"><div class=\"pierwsza_strona mw-overflow-y\" style=\"max-height:"..(wysokosc or "100%")..";overflow:auto;width:100%;height:100%;box-sizing:border-box;\"><div style=\"display:flex;flex-direction:column;width:auto;height:auto;box-sizing:border-box;\">"..prawe_menu.."</div></div></div>";
end;
p["SpisTreści"]=function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local nazwa_artykulu=args["artykuł"] or args[1] or "Przykładowy artykuł";
local nazwa_ksiazki=args["książka"] or args[2];
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
local czy_specjalne=parametry_modul.CzyTak(args["specjalne"]);
local czy_parser=parametry_modul.CzyTak(args["parser"]);
local dokumentacja=args["dokumentacja"];
local czy_dokumentacja=parametry_modul.CzyTak(dokumentacja);
local czy_math=parametry_modul.CzyTak(args["wzory"]);
local czy_math_analiza=parametry_modul.CzyTak(args["wzory-analiza"]);
local czy_bez_przypisow=parametry_modul.CzyTak(args["bez przypisów"]);
if(not dokumentacja)then
czy_dokumentacja=czy_analiza or czy_specjalne or czy_parser;
end
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
if(not parametry_modul.CzyTak(nazwa_ksiazki))then
local uzyskana_nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local uzyskana_nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
local uzyskana_nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
nazwa_ksiazki=((uzyskana_nazwa_przestrzeni~="") and (uzyskana_nazwa_przestrzeni..":") or "")..((uzyskana_nazwa_przestrzeni_ksiazki~="") and (uzyskana_nazwa_przestrzeni_ksiazki.."/") or "")..uzyskana_nazwa_ksiazki;
end;
local brak=(nazwa_artykulu and mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]") or nil) or (nazwa_ksiazki and mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]") or nil);
if(brak~=nil)then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"]();
local element_zdania_kategorii=(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,")));
return "[["..nazwy_np_modul.Category..":Nazwy "..element_zdania_kategorii.." w spisach treści, zawierają niedozwolone znaki]]";
end;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_modulu=nazwy_modul["NazwaModułu"](tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni,tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu);
local techniczne_modul=require("Module:Techniczne");
nazwa_ksiazki=html_modul.DecodeHtml(nazwa_ksiazki,true);
nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_ksiazki,[2]=nazwa_modulu,};
local nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true);
nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",};
local pelna_nazwa_strony=((not nazwa_artykulu) or (nazwa_artykulu==""))and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu;
local strona=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_strony);
if(strona)then
pelna_nazwa_strony=strona;
nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_strony);
else
nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_strony);
end;
local szablonowe_modul=require("Module:Szablonowe");
local tekst_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony;
local pelna_nazwa_strony_szablonowa=szablonowe_modul["SzablonowaKompletnaNazwaStrony"](pelna_nazwa_strony,nil,nil);
if((czy_analiza)or(czy_parser))then
tekst_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony=p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(pelna_nazwa_strony,pelna_nazwa_strony_szablonowa,false);
else
tekst_artykulu=p.SpreparowanyWikikodStrony(pelna_nazwa_strony,pelna_nazwa_strony_szablonowa,not czy_dokumentacja);
if(tekst_artykulu)then
if(czy_dokumentacja)then
tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony=szablonowe_modul:UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(pelna_nazwa_strony);
else
tekst_artykulu,tablica_obiektow_strony_dany_modul_uzyskany=szablonowe_modul:KodujWzoryMatematyczneTekstu(tekst_artykulu);
if((not czy_math)and(not czy_math_analiza))then
tablica_obiektow_strony_dany_modul_uzyskany=nil;
end;
end;
end;
end;
local nazwa=args["nazwa"] or args[3];
local czy_nazwa=parametry_modul.CzyTak(nazwa);
local nazwa_strony_artykulu=czy_nazwa and nazwa or nazwa_artykulu;
local dodatek=args["dodatek"] or args[4];
local poziom=tonumber(args["poziom"]) or 6;
local FuncNaglowek=function(czy_red)
local id_alternatywne=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_strony);
local nazwa_optymalizowane=czy_nazwa and (parametry_modul["Odstępy"]{[1]=nazwa,[2]="tak",}) or nil;
local czy_inne_id=(czy_nazwa and (nazwa_optymalizowane~=id_alternatywne));
local dodatek_id=((parametry_modul.CzyTak(dodatek)) and (" "..dodatek) or "");
local tab_atrybuty={["id"]=((czy_nazwa and nazwa or id_alternatywne)..dodatek_id),};
local rozdzial=(czy_inne_id and ("<span id=\""..id_alternatywne.."\" class=\"SpisTreści-nazwa\">") or "")..(czy_red and ("<span style=\"color:red\">") or "").."[["..pelna_nazwa_strony.."|"..nazwa_strony_artykulu.."]]"..(czy_red and ("</span>") or "")..dodatek_id..(czy_inne_id and ("</span>") or "");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local naglowek=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstuHn(rozdzial,poziom,tab_atrybuty);
return naglowek;
end;
if(not tekst_artykulu)then
if(nazwa_artykulu~="")then
return FuncNaglowek(true);
else
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={[1]="Wywołano szablon z argumentem pierwszym pustym.",tag="span",}};
end;
else
local twor_spisu_tresci=FuncNaglowek(false);
---
local tablica_obiektow_strony_danych_kodow_specjalnych_modul=nil;
if(((czy_dokumentacja)and((czy_specjalne)or(czy_parser)))or((not czy_dokumentacja)and(czy_math_analiza)))then
tekst_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul=szablonowe_modul:KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(tekst_artykulu,pelna_nazwa_strony,pelna_nazwa_strony_szablonowa,tablica_obiektow_strony_dany_modul_uzyskany);
end;
local stronicowyparser_glownafunkcjazbieraniadanych_modul=require("Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron");
local ulozenia_w_menu_spisu_tresci=stronicowyparser_glownafunkcjazbieraniadanych_modul:SpisRzeczyWedlePodanegoTekstu(tekst_artykulu,pelna_nazwa_strony,nil,nil,nil,
tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni,
tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu,
tabela_listy_danych_analizy_ksiazki.nazwa_woluminu,
nazwa_artykulu,
pelna_nazwa_strony,pelna_nazwa_strony_szablonowa,tablica_obiektow_strony_dany_modul_uzyskany or {},nil,tablica_obiektow_strony_danych_kodow_specjalnych_modul,nil,true);
local atrybuty="style=\"margin-left:20px\"";
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local toc=stronicowyparser_potrzebne_modul.TOCSilnik(frame,ulozenia_w_menu_spisu_tresci, atrybuty,czy_bez_przypisow);
local limit=args["limit"];
local czy_limit=parametry_modul.CzyTak(limit);
toc=toc and frame:preprocess(toc) or nil;
return '<div class="toc_ogólnie_spis toc_artykuł toclimit '..(czy_limit and ("toclimit-"..limit) or "")..'">\n'..twor_spisu_tresci..(toc and toc or "")..'</div>';
end;
end;
local function IteratorFunkcja()
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local tabela_wypowiedzi=obiekty_modul.tablica_obiektowych_form;
local licznik=1;
return function()
local tabela_obiektu=tabela_wypowiedzi[licznik];
if(not tabela_obiektu)then return nil;end;
local wartosc1=tabela_obiektu[1];
local wartosc2=tabela_obiektu[4];
licznik=licznik+1;
return wartosc1,wartosc2;
end;
end;
local iterator=IteratorFunkcja();
for nazwa_obiektu,czesc_nazwy_funkcji in iterator do
p["Numer"..czesc_nazwy_funkcji] = function(frame)
local stronicowyparser_numerobiektu_modul=require("Module:StronicowyParser/NumerObiektu");
return stronicowyparser_numerobiektu_modul.NumerObiektu(frame,nazwa_obiektu);
end;
end;
p["AnalizujSzablonemStronicowymArtykuł"]=function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
return "";
end;
function p.formatowanie()
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
return tabela_listy_danych_analizy_ksiazki.formatowanie;
end;
function p.StronaZeSzablonemStronaStart()
local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych;
return tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start;
end;
function p.WstawKategorie(frame)
local stronicowyparser_kategorie_modul=require("Module:StronicowyParser/Kategorie");
return stronicowyparser_kategorie_modul.WstawKategorie(frame);
end;
function p.CzyStronaSubst(frame,czy_wymusic)
if(czy_wymusic)then
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame);
local spis,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki,tab_lista_artykulow_w_ksiazce,tab_lista_zmiennych_w_artykule=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame);
if(not tab_lista_zmiennych_w_artykule)then return nil;end;
return tab_lista_zmiennych_w_artykule.strona_zbiorcza;
end;
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
if(tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"])then
return "tak";
end;
end;
p["CzyArtykułKsiążki"]=function(frame)
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
if(tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"])then
return "tak";
end;
end;
return p;
6lzwtqelxtw4ufwyn266wk2gwhcsanm
Szablon:Jeśli niepuste komunikat
10
41796
557821
556417
2026-09-28T16:40:18Z
Persino
2851
557821
wikitext
text/x-wiki
<includeonly>{{#if:{{{1|}}}|{{{wtedy|'''Szablon {{s|{{{2|}}}}} zgłosił następujące błędy:'''}}}{{#if:{{{warunek|}}}||{{{1|}}}}}|{{{przeciwnie|{{{3|}}}}}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
fa0yg4ia7zt6rg4nm7gxlolsz048mev
557824
557821
2026-09-28T16:43:35Z
Persino
2851
557824
wikitext
text/x-wiki
<includeonly>{{#if:{{{1|}}}|{{{wtedy|'''Szablon {{s|{{{2|}}}}} zgłosił następujące błędy:'''}}}{{#if:{{{nie z warunku|}}}||{{{1|}}}}}|{{{przeciwnie|{{{3|}}}}}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
a3i31f3m6a8sd719was3miz28uor3vg
Szablon:Jeśli niepuste/opis
10
42314
557869
553366
2026-09-29T04:11:43Z
Persino
2851
/* Zobacz też */
557869
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Szablon przyjmuje dwa parametry, jeśli pierwszy parametr (lewy) jest niepusty, wtedy zwraca ten parametr z odpowiednim tekstem, przedrostka lub przyrostka, lewego lub ogólnego, i ewentualnie otoczona znacznikami, podobnie robimy z drugim elementem (prawym), jeżeli ten pierwszy okazał się pusty.
== Parametry ==
; Parametry
* {{Code|1}} i {{Code|2}} - jeśli pierwszy parametr jest niepusty, to rozpatruje go, w innym przypadku ten drugi,
* {{Code|przed lewy}} i {{Code|przed prawy}} - przedrostek przy rozpatrywanym kolejno lewym i prawym,
* {{Code|po lewy}} i {{Code|po prawy}} - przyrostek przy rozpatrywanym kolejno lewym i prawym,
* {{Code|przed}} i {{Code|po}} - przedrostek i przyrostek przy rozpatrywanym kolejno lewym i prawym, jeżeli nie użyto kolejno {{Code|przed lewy}} i {{Code|przed prawy}} oraz {{Code|po lewy}} i {{Code|po prawy}}, używany zamiast kolejno {{Code|przed lewy}} i {{Code|przed prawy}} oraz {{Code|po lewy}} i {{Code|po prawy}},
* {{Code|znacznik lewy}} (ze stylem {{Code|styl lewy}}) i {{Code|znacznik prawy}} (ze stylem {{Code|styl prawy}}) - znaczniki stawiane przy rozpatrywanym kolejno {{Code|1}} i {{Code|2}},
* {{Code|znacznik}} (ze stylem {{Code|styl}}) - znaczniki stawiane zamiast {{Code|znacznik lewy}} i {{Code|znacznik prawy}} ewentualnie ze stylem zamiast {{Code|styl lewy}} i {{Code|styl prawy}}.
----
Parametr lewy to parametr {{Code|1}}, a prawy {{Code|2}}.
== Przykład ==
=== Przykłady i wyniki ===
----
; Zestaw pierwszy
----
{{Pre start}}
{{s|Jeśli niepuste|1|2}} → {{Jeśli niepuste|1|2}}
{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b}} → {{Jeśli niepuste|1|2|przed=a|po=b}}
{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d}} → {{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d}}
{{s|Jeśli niepuste||2}} → {{Jeśli niepuste||2}}
{{s|Jeśli niepuste||2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d}} → {{Jeśli niepuste||2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d}}
{{Pre koniec}}
----
----
; Zestaw drugi
----
{{Pre start}}
{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}} → {{Nowiki|{{Jeśli niepuste|1|2|przed=a|po=b|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}}}
{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}} → {{Nowiki|{{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}}}
{{s|Jeśli niepuste||2|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}} → {{Nowiki|{{Jeśli niepuste||2|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}}}
{{s|Jeśli niepuste||2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}} → {{Nowiki|{{Jeśli niepuste||2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}}}
{{Pre koniec}}
----
----
; Zestaw trzeci
----
{{Pre start}}
{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}} → {{Nowiki|{{Jeśli niepuste|1|2|przed=a|po=b|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}}}
{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}} → {{Nowiki|{{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}}}
{{s|Jeśli niepuste||2|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}} → {{Nowiki|{{Jeśli niepuste||2|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}}}
{{s|Jeśli niepuste||2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}} → {{Nowiki|{{Jeśli niepuste||2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}}}
{{Pre koniec}}
----
----
; Zestaw czwarty
{{Pre start}}
{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}} → {{Nowiki|{{Jeśli niepuste|1|2|przed=a|po=b|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}}}
{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}} → {{Nowiki|{{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}}}
{{s|Jeśli niepuste||2|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}} → {{Nowiki|{{Jeśli niepuste||2|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}}}
{{s|Jeśli niepuste||2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}} → {{Nowiki|{{Jeśli niepuste||2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}}}
{{Pre koniec}}
----
W zestawach od drugiego i do trzeciego podano wyniki opakowane w szablon {{s|Nowiki}}.
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Parametr pierwszy szablonu.",
"type": "string"
},
"2": {
"description": "Parametr drugi strony.",
"type": "string"
},
"przed": {
"description": "Wartość tej zmiennej jest wstawiana przed zwracaną wartością, jeżeli nie jest pusta, używany zamiast parametru \"przed lewy\" i \"przed prawy\".",
"type": "string"
},
"po": {
"description": "Wartość tej zmiennej jest wstawiana po zwracanej wartości, jeżeli nie jest pusta, używany zamiast parametru \"po lewy\" i \"po prawy\".",
"type": "string"
},
"przed lewy": {
"description": "Wartość tej zmiennej jest wstawiana przed pierwszym zwracanym parametrem.",
"type": "string"
},
"po lewy": {
"description": "Wartość tej zmiennej jest wstawiana po pierwszym zwracanym parametrze.",
"type": "string"
},
"przed prawy": {
"description": "Wartość tej zmiennej jest wstawiana przed drugim niepustym zwracanym parametrem.",
"type": "string"
},
"po prawy": {
"description": "Wartość tej zmiennej jest wstawiana po drugim niepustym zwracanym parametrze.",
"type": "string"
},
"znacznik lewy": {
"description": "Znacznik przy rozpatrywanym pierwszym numerowanym parametrze.",
"type": "string"
},
"znacznik prawy": {
"description": "Znacznik przy rozpatrywanym drugim numerowanym parametrze.",
"type": "string"
},
"styl lewy": {
"description": "Styl przy rozpatrywanym pierwszym numerowanym parametrze.",
"type": "string"
},
"styl prawy": {
"description": "Styl przy rozpatrywanym drugim numerowanym parametrze.",
"type": "string"
},
"znacznik": {
"description": "Znacznik stosowany zamiast \"znacznik lewy\" i \"znacznik prawy\".",
"type": "string"
},
"styl": {
"description": "Styl stosowany zamiast \"styl lewy\" i \"styl prawy\".",
"type": "string"
}
},
"description": "Szablon do liczenie pierwszego niepustego parametru z dwóch z ewentualnymi przedrostami i przyrostkami.",
"paramOrder": [
"1",
"2",
"przed",
"po",
"przed lewy",
"po lewy",
"przed prawy",
"po prawy",
"znacznik",
"znacznik lewy",
"znacznik prawy",
"styl",
"styl lewy",
"styl prawy"
]
}
</templatedata>
== Zobacz też ==
{{Jeśli równe/opis/Zobacz też}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony warunkowe}}
</includeonly>
bwf1khgr0h778qlmigkl7kb12vpl1zy
Szablon:Jeśli niepuste komunikat/opis
10
42315
557822
556425
2026-09-28T16:41:41Z
Persino
2851
/* Opis parametrów */
557822
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Dwa układy używania tego szablonu są według punktu:
* Szablon używamy do wyświetlania pewnego komunikatu, jeśli jest niepusty pierwszy parametr tego szablonu, w przeciwnym przypadku wyświetla trzeci parametr.
* Też w innym przypadku zależności od pierwszego parametru niepustego: {{Parametr|1|coś}}, wyświetla się coś według parametru: {{Parametr|wtedy|coś}} (wraz z parametrem: {{Parametr|1|coś}}, chyba, że podano zmienną: {{Parametr|dodatkowe|tak}}), przeciwnie szablon idzie do zmiennej: {{Parametr|przeciwnie|coś}}.
== Opis parametrów ==
; Parametry
* {{Code|1}} - lista błędów komunikatu - sugerowany,
* {{Code|wtedy}} - używana, gdy jest taki komunikat, wtedy gdy pierwszy argument jest niepusty - sugerowany,
* {{Code|warunek}} - używana wraz z parametrem: {{Code|wtedy}}, wtedy dodatkowa informacja po nim nie jest wyświetlana od wartości pierwszego argumentu - opcjonalny,
* {{Code|2}} - nazwa szablonu - opcjonalny,
* {{Code|3}} lub {{Code|przeciwnie}} - wyświetlana, gdy nie ma komunikatu, czyli pierwszy parametr nie jest niepusty - sugerowany.
== Przykład ==
; Przykład pierwszy
{{Pre|{{s|ambox|typ{{=}}poważny|tekst{{=}}{{s|Jeśli niepuste komunikat|<nowiki><ul><li>Oto jest błąd.</li></ul></nowiki>|NPA|Tekst szablonu.}}}}}}
; Wynik
{{ambox|typ=poważny|tekst={{Jeśli niepuste komunikat|<ul><li>Oto jest błąd.</li></ul>|NPA|Tekst szablonu.}}}}
----
; Przykład drugi
{{Pre|{{s|ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat||NPA|Tekst szablonu.}}}}}}
; Wynik
{{ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat||NPA|Tekst szablonu.}}}}
----
; Przykład trzeci
{{Pre|{{s|ambox|typ{{=}}poważny|tekst{{=}}{{s|Jeśli niepuste komunikat|<nowiki><ul><li>Oto jest błąd.</li></ul></nowiki>|wtedy{{=}}<nowiki>'''</nowiki>Szablon zgłosił następujące błędy:<nowiki>'''</nowiki>|przeciwnie{{=}}Tekst szablonu.}}}}}}
; Wynik
{{ambox|typ=poważny|tekst={{Jeśli niepuste komunikat|<ul><li>Oto jest błąd.</li></ul>|wtedy='''Szablon zgłosił następujące błędy:'''|przeciwnie=Tekst szablonu.}}}}
----
; Przykład czwarty
{{Pre|{{s|ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat||wtedy{{=}}<nowiki>'''</nowiki>Szablon zgłosił następujące błędy:<nowiki>'''</nowiki>|przeciwnie{{=}}Tekst szablonu.}}}}}}
; Wynik
{{ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat||wtedy='''Szablon zgłośił następujące błędy:'''|przeciwnie=Tekst szablonu.}}}}
----
; Przykład piąty
{{Pre|{{s|ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat|Wartość sprawdzana|dodatkowe{{=}}tak|wtedy{{=}}Komunikat wtedy.|przeciwnie{{=}}Komunikat przeciwnie.}}}}}}
; Wynik
{{ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat|Wartość sprawdzana|dodatkowe=tak|wtedy=Komunikat wtedy.|przeciwnie=Komunikat przeciwnie.}}}}
----
; Przykład szósty
{{Pre|{{s|ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat||dodatkowe{{=}}tak|wtedy{{=}}Komunikat wtedy.|przeciwnie{{=}}Komunikat przeciwnie.}}}}}}
; Wynik
{{ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat||dodatkowe=tak|wtedy=Komunikat wtedy.|przeciwnie=Komunikat przeciwnie.}}}}
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Lista błędów komunikatu.",
"type": "string",
"required": true
},
"2": {
"description": "Nazwa szablonu.",
"type": "string",
"suggested": true
},
"3": {
"aliases": [
"przeciwnie"
],
"description": "Wyświetlana, gdy nie ma komunikatu.",
"type": "wiki-page-name",
"suggested": true
},
"wtedy": {
"description": "Część komunikatu.",
"type": "string"
}
},
"paramOrder": [
"1",
"wtedy",
"2",
"3"
],
"description": "Szablon używamy do wyświetlania komunikatu, jeśli jest niepusty pierwszy parametr tego szablonu, w przeciwnym przypadku wyświetla trzeci parametr. "
}
</templatedata>
== Zobacz też ==
* {{s|Jeśli niepuste}} - szablon zwraca pierwszy parametr, jeśli on nie jest pusty, w przeciwnym przypadku drugi,
* {{s|Jeśli równe}} - szablon warunkowy porównujący dwa parametry ewentualnie w dwóch różnych jednostkach długości, sprawdzam, czy są równe.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony warunkowe}}
</includeonly>
lej9zw9o8vs8vjale9uqh5hlw3wk94b
557823
557822
2026-09-28T16:43:15Z
Persino
2851
557823
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Dwa układy używania tego szablonu są według punktu:
* Szablon używamy do wyświetlania pewnego komunikatu, jeśli jest niepusty pierwszy parametr tego szablonu, w przeciwnym przypadku wyświetla trzeci parametr.
* Też w innym przypadku zależności od pierwszego parametru niepustego: {{Parametr|1|coś}}, wyświetla się coś według parametru: {{Parametr|wtedy|coś}} (wraz z parametrem: {{Parametr|1|coś}}, chyba, że podano zmienną: {{Parametr|nie z warunku|tak}}), przeciwnie szablon idzie do zmiennej: {{Parametr|przeciwnie|coś}}.
== Opis parametrów ==
; Parametry
* {{Code|1}} - lista błędów komunikatu - sugerowany,
* {{Code|wtedy}} - używana, gdy jest taki komunikat, wtedy gdy pierwszy argument jest niepusty - sugerowany,
* {{Code|nie z warunku}} - używana wraz z parametrem: {{Code|wtedy}}, wtedy dodatkowa informacja po nim nie jest wyświetlana od wartości pierwszego argumentu - opcjonalny,
* {{Code|2}} - nazwa szablonu - opcjonalny,
* {{Code|3}} lub {{Code|przeciwnie}} - wyświetlana, gdy nie ma komunikatu, czyli pierwszy parametr nie jest niepusty - sugerowany.
== Przykład ==
; Przykład pierwszy
{{Pre|{{s|ambox|typ{{=}}poważny|tekst{{=}}{{s|Jeśli niepuste komunikat|<nowiki><ul><li>Oto jest błąd.</li></ul></nowiki>|NPA|Tekst szablonu.}}}}}}
; Wynik
{{ambox|typ=poważny|tekst={{Jeśli niepuste komunikat|<ul><li>Oto jest błąd.</li></ul>|NPA|Tekst szablonu.}}}}
----
; Przykład drugi
{{Pre|{{s|ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat||NPA|Tekst szablonu.}}}}}}
; Wynik
{{ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat||NPA|Tekst szablonu.}}}}
----
; Przykład trzeci
{{Pre|{{s|ambox|typ{{=}}poważny|tekst{{=}}{{s|Jeśli niepuste komunikat|<nowiki><ul><li>Oto jest błąd.</li></ul></nowiki>|wtedy{{=}}<nowiki>'''</nowiki>Szablon zgłosił następujące błędy:<nowiki>'''</nowiki>|przeciwnie{{=}}Tekst szablonu.}}}}}}
; Wynik
{{ambox|typ=poważny|tekst={{Jeśli niepuste komunikat|<ul><li>Oto jest błąd.</li></ul>|wtedy='''Szablon zgłosił następujące błędy:'''|przeciwnie=Tekst szablonu.}}}}
----
; Przykład czwarty
{{Pre|{{s|ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat||wtedy{{=}}<nowiki>'''</nowiki>Szablon zgłosił następujące błędy:<nowiki>'''</nowiki>|przeciwnie{{=}}Tekst szablonu.}}}}}}
; Wynik
{{ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat||wtedy='''Szablon zgłośił następujące błędy:'''|przeciwnie=Tekst szablonu.}}}}
----
; Przykład piąty
{{Pre|{{s|ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat|Wartość sprawdzana|nie z warunku{{=}}tak|wtedy{{=}}Komunikat wtedy.|przeciwnie{{=}}Komunikat przeciwnie.}}}}}}
; Wynik
{{ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat|Wartość sprawdzana|nie z warunku=tak|wtedy=Komunikat wtedy.|przeciwnie=Komunikat przeciwnie.}}}}
----
; Przykład szósty
{{Pre|{{s|ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat||nie z warunku{{=}}tak|wtedy{{=}}Komunikat wtedy.|przeciwnie{{=}}Komunikat przeciwnie.}}}}}}
; Wynik
{{ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat||nie z warunku=tak|wtedy=Komunikat wtedy.|przeciwnie=Komunikat przeciwnie.}}}}
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Lista błędów komunikatu.",
"type": "string",
"required": true
},
"2": {
"description": "Nazwa szablonu.",
"type": "string",
"suggested": true
},
"3": {
"aliases": [
"przeciwnie"
],
"description": "Wyświetlana, gdy nie ma komunikatu.",
"type": "wiki-page-name",
"suggested": true
},
"wtedy": {
"description": "Część komunikatu.",
"type": "string"
}
},
"paramOrder": [
"1",
"wtedy",
"2",
"3"
],
"description": "Szablon używamy do wyświetlania komunikatu, jeśli jest niepusty pierwszy parametr tego szablonu, w przeciwnym przypadku wyświetla trzeci parametr. "
}
</templatedata>
== Zobacz też ==
* {{s|Jeśli niepuste}} - szablon zwraca pierwszy parametr, jeśli on nie jest pusty, w przeciwnym przypadku drugi,
* {{s|Jeśli równe}} - szablon warunkowy porównujący dwa parametry ewentualnie w dwóch różnych jednostkach długości, sprawdzam, czy są równe.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony warunkowe}}
</includeonly>
42u8g5x6hyzorlpm8edx0euv3g6i8t9
557868
557823
2026-09-29T04:11:13Z
Persino
2851
/* Zobacz też */
557868
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Dwa układy używania tego szablonu są według punktu:
* Szablon używamy do wyświetlania pewnego komunikatu, jeśli jest niepusty pierwszy parametr tego szablonu, w przeciwnym przypadku wyświetla trzeci parametr.
* Też w innym przypadku zależności od pierwszego parametru niepustego: {{Parametr|1|coś}}, wyświetla się coś według parametru: {{Parametr|wtedy|coś}} (wraz z parametrem: {{Parametr|1|coś}}, chyba, że podano zmienną: {{Parametr|nie z warunku|tak}}), przeciwnie szablon idzie do zmiennej: {{Parametr|przeciwnie|coś}}.
== Opis parametrów ==
; Parametry
* {{Code|1}} - lista błędów komunikatu - sugerowany,
* {{Code|wtedy}} - używana, gdy jest taki komunikat, wtedy gdy pierwszy argument jest niepusty - sugerowany,
* {{Code|nie z warunku}} - używana wraz z parametrem: {{Code|wtedy}}, wtedy dodatkowa informacja po nim nie jest wyświetlana od wartości pierwszego argumentu - opcjonalny,
* {{Code|2}} - nazwa szablonu - opcjonalny,
* {{Code|3}} lub {{Code|przeciwnie}} - wyświetlana, gdy nie ma komunikatu, czyli pierwszy parametr nie jest niepusty - sugerowany.
== Przykład ==
; Przykład pierwszy
{{Pre|{{s|ambox|typ{{=}}poważny|tekst{{=}}{{s|Jeśli niepuste komunikat|<nowiki><ul><li>Oto jest błąd.</li></ul></nowiki>|NPA|Tekst szablonu.}}}}}}
; Wynik
{{ambox|typ=poważny|tekst={{Jeśli niepuste komunikat|<ul><li>Oto jest błąd.</li></ul>|NPA|Tekst szablonu.}}}}
----
; Przykład drugi
{{Pre|{{s|ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat||NPA|Tekst szablonu.}}}}}}
; Wynik
{{ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat||NPA|Tekst szablonu.}}}}
----
; Przykład trzeci
{{Pre|{{s|ambox|typ{{=}}poważny|tekst{{=}}{{s|Jeśli niepuste komunikat|<nowiki><ul><li>Oto jest błąd.</li></ul></nowiki>|wtedy{{=}}<nowiki>'''</nowiki>Szablon zgłosił następujące błędy:<nowiki>'''</nowiki>|przeciwnie{{=}}Tekst szablonu.}}}}}}
; Wynik
{{ambox|typ=poważny|tekst={{Jeśli niepuste komunikat|<ul><li>Oto jest błąd.</li></ul>|wtedy='''Szablon zgłosił następujące błędy:'''|przeciwnie=Tekst szablonu.}}}}
----
; Przykład czwarty
{{Pre|{{s|ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat||wtedy{{=}}<nowiki>'''</nowiki>Szablon zgłosił następujące błędy:<nowiki>'''</nowiki>|przeciwnie{{=}}Tekst szablonu.}}}}}}
; Wynik
{{ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat||wtedy='''Szablon zgłośił następujące błędy:'''|przeciwnie=Tekst szablonu.}}}}
----
; Przykład piąty
{{Pre|{{s|ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat|Wartość sprawdzana|nie z warunku{{=}}tak|wtedy{{=}}Komunikat wtedy.|przeciwnie{{=}}Komunikat przeciwnie.}}}}}}
; Wynik
{{ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat|Wartość sprawdzana|nie z warunku=tak|wtedy=Komunikat wtedy.|przeciwnie=Komunikat przeciwnie.}}}}
----
; Przykład szósty
{{Pre|{{s|ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat||nie z warunku{{=}}tak|wtedy{{=}}Komunikat wtedy.|przeciwnie{{=}}Komunikat przeciwnie.}}}}}}
; Wynik
{{ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat||nie z warunku=tak|wtedy=Komunikat wtedy.|przeciwnie=Komunikat przeciwnie.}}}}
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Lista błędów komunikatu.",
"type": "string",
"required": true
},
"2": {
"description": "Nazwa szablonu.",
"type": "string",
"suggested": true
},
"3": {
"aliases": [
"przeciwnie"
],
"description": "Wyświetlana, gdy nie ma komunikatu.",
"type": "wiki-page-name",
"suggested": true
},
"wtedy": {
"description": "Część komunikatu.",
"type": "string"
}
},
"paramOrder": [
"1",
"wtedy",
"2",
"3"
],
"description": "Szablon używamy do wyświetlania komunikatu, jeśli jest niepusty pierwszy parametr tego szablonu, w przeciwnym przypadku wyświetla trzeci parametr. "
}
</templatedata>
== Zobacz też ==
{{Jeśli równe/opis/Zobacz też}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony warunkowe}}
</includeonly>
sq5ardgbhmboohghpgo0vixf5tc8dri
Moduł:S
828
46769
557839
556070
2026-09-28T18:39:28Z
Persino
2851
557839
Scribunto
text/plain
local OpakowanieLinkoweNowiki=function(pole)
local strony_modul=require('Module:Strony');
local frame=mw.getCurrentFrame();
pole=mw.ustring.gsub(pole,"(%a+://%S+)",function(adres)
local czy_url=strony_modul.SprawdzanieURL(adres);
if(czy_url)then
local adres="<nowiki>"..adres.."</nowiki>";
adres=frame:preprocess(adres);
return adres;
end;
end);
return pole;
end;
local function StworzSymboliczneWywolanieWedlugZebranychDanych(args, link)
local html_modul=require("Module:Html");
local wywolanie="{{"..link;
for name,value in ipairs(args)do
if(name~=1)then
value=OpakowanieLinkoweNowiki(value);
value=html_modul.PrzypisanieZnakoweEncodeHtml(value);
value=mw.ustring.gsub(value,"^!","!");
value=mw.ustring.gsub(value,"\n!","\n!");
value=html_modul.EncodeZnakProloguList(value);
wywolanie=wywolanie.."|"..value;
end;
end;
local wywolanie=wywolanie.."}}";
return wywolanie;
end;
local function SformatowanaNazwaStronySzablonuSymbolicznegoWywolania(nazwa_stara,nazwa_nowa,nazwa_oryginalna,odsmiec,od_malej)
if(nazwa_oryginalna)then return nazwa_stara;end;
if(odsmiec)then if(od_malej)then return mw.getContentLanguage():lcfirst(nazwa_nowa) else return nazwa_nowa;end;end;
local techniczne_modul=require("Module:Techniczne");
nazwa_nowa=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](nazwa_nowa);
local wzor=mw.ustring.gsub(nazwa_nowa," ","[%%s_]+");
wzor=mw.ustring.gsub(wzor,"^([%s_:]*)([^:]*)(:)([%s_:]*)(.)",function(a,b,c,d,e)
local przestrzen=techniczne_modul["WzórDanejPrzestrzeniNazw"](b);
local duze=mw.getContentLanguage():ucfirst(e);
local male=mw.getContentLanguage():lcfirst(e);
if(duze~=male)then return a..przestrzen..c..d.."["..duze..male.."]";else return s;end;
end);
wzor=mw.ustring.gsub(wzor,"^([%s_:]*)(.)",function(a,b)
local duze=mw.getContentLanguage():ucfirst(b);
local male=mw.getContentLanguage():lcfirst(b);
if(duze~=male)then
return a.."["..duze..male.."]";
else
return nil;
end;
end);
wzor=mw.ustring.gsub(wzor,":","[%%s_]*:[%%s_:]*");
wzor="([%s_]*"..wzor.."[%s_]*)$";
local nazwa_stara_sformatowana=mw.ustring.match(nazwa_stara,wzor);
return nazwa_stara_sformatowana or mw.ustring.gsub(nazwa_stara,"^[%s_:]*","");
end;
local function UsunDwukropki(kod)
local ile;
repeat
kod,ile=mw.ustring.gsub(kod,"^([%s_]*):","%1");
until ile==0;
local odstepy_przed_nazwy,kod,odstepy_po_nazwy=mw.ustring.match(kod,"^([%s_]*)(.-)([%s_]*)$")
return kod,odstepy_przed_nazwy,odstepy_po_nazwy;
end;
local function SzablonoweSymboliczneWywolanie(args,modyfikatory,klucz_przestrzeni,rozwazana_nazwa_strony,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,odstepy_przed,odstepy_po,przed_nazwa,po_nazwa,nazwa_oryginalna,bez_znacznikow,bez_przetwarzania,z_przestrzenia,odsmiec,od_malej,analiza)
local nazwy_modul=require("Module:Nazwy");
local parametry_modul=require("Module:Parametry");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local wiki_modul=require("Module:Wiki");
local html_modul=require("Module:Html");
-----
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=rozwazana_nazwa_strony,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}
local czy_jezykowe=(parametry_modul.CzyTak(klucz_projektu) or (parametry_modul.CzyTak(kod_jezyka) or parametry_modul.CzyTak(kod_projektu)));
----
local Strona=function(strona,klucz_przestrzeni)
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
if(nazwa_przestrzeni=="")then
return (((not czy_jezykowe)or(czy_biezaca))and nazwy_np_modul[klucz_przestrzeni] or klucz_przestrzeni)..":"..strona;
elseif((klucz_przestrzeni~="Template")and(nazwa_przestrzeni~=nazwy_np_modul[klucz_przestrzeni]))then
return (((not czy_jezykowe)or(czy_biezaca))and nazwy_np_modul[klucz_przestrzeni] or klucz_przestrzeni)..":"..strona;
else
return strona;
end;
end;
modyfikatory=html_modul.ZamianaDwukropkaNaKodHtml(modyfikatory);
local function NazwaSzablonu(subnazwa_wyswietlana,subnazwa_bez_ksiazka,nazwa,nazwa_wyswietlana)
if(subnazwa_wyswietlana)then
local subnazwa=mw.ustring.match(nazwa,"/([^/]+)$");
local subnazwa_po_dwukropku=subnazwa and (mw.ustring.match(subnazwa,":(.-)$") or subnazwa) or (mw.ustring.match(nazwa,":(.-)$") or nazwa);
return subnazwa_po_dwukropku;
elseif(subnazwa_bez_ksiazka)then
return mw.ustring.match(nazwa,"^[^/]-:Książka:(.*)$") or mw.ustring.match(nazwa,"^Książka:(.*)$") or nazwa_wyswietlana or nazwa;
end;
return (nazwa_wyswietlana or nazwa);
end;
----
local function NazwaPrzestrzeni()
if(analiza)then
if(czy_biezaca)then
nazwa_przestrzeni=nazwy_modul.Np{nazwa=klucz_przestrzeni,istnieje="tak",["wynik błędu nietekstowy"]="tak",} or klucz_przestrzeni;
else
nazwa_przestrzeni=nazwy_modul.NpDane{nazwa=klucz_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,istnieje="tak",["wynik błędu nietekstowy"]="tak",} or klucz_przestrzeni;
end;
elseif(not czy_jezykowe)then
nazwa_przestrzeni=czy_biezaca and nazwy_np_modul[klucz_przestrzeni] or klucz_przestrzeni;
else
nazwa_przestrzeni=klucz_przestrzeni;
end;
return nazwa_przestrzeni;
end;
local NazwaPrefixStrona=function(nazwa)
if(not nazwa)then return nazwa;end;
if(mw.ustring.match(nazwa,"/$"))then
local techniczne_modul=require("Module:Techniczne");
local ile=techniczne_modul.PoliczZbiory{[1]=nazwa,tekst=true,};
if(ile==0)then
return "Specjalna:Strony_według_prefiksu/"..nazwa;
end;
return nazwa;
end;
return nazwa;
end;
local function ZgodneZKluczemPrzestrzeni(klucz_projektu,kod_jezyka,kod_projektu,czy_przestrzen,czy_przestrzen_niepolska)
local rozwazana_nazwa_strony,odstepy_przed_nazwy,odstepy_po_nazwy=UsunDwukropki(rozwazana_nazwa_strony,nazwa_oryginalna);
local strona=nazwy_modul[((not czy_przestrzen)and(czy_przestrzen_niepolska)) and "PEŁNANAZWASTRONY" or "NAZWASTRONY"]{nazwa=rozwazana_nazwa_strony,["klucz projektu"]=czy_przestrzen_niepolska and klucz_projektu or nil,["kod języka"]=czy_przestrzen_niepolska and kod_jezyka or nil,["kod projektu"]=czy_przestrzen_niepolska and kod_projektu or nil,};
local szablonowe_modul=require("Module:Szablonowe");
local nazwa=nazwa_oryginalna and strona or (z_przestrzenia and szablonowe_modul["PełnaNazwaStronyWywołańSzablonowych"](rozwazana_nazwa_strony,klucz_przestrzeni,kod_jezyka,kod_projektu) or nazwy_modul["NAZWASTRONY"]{nazwa=rozwazana_nazwa_strony,["klucz projektu"]=czy_przestrzen_niepolska and klucz_projektu or nil,["kod języka"]=czy_przestrzen_niepolska and kod_jezyka or nil,["kod projektu"]=czy_przestrzen_niepolska and kod_projektu or nil,})
if(not z_przestrzenia)then
if((not nazwa_oryginalna)and(klucz_przestrzeni=="Template"))then
local inna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=nazwa,["klucz projektu"]=czy_przestrzen_niepolska and klucz_projektu or nil,["kod języka"]=czy_przestrzen_niepolska and kod_jezyka or nil,["kod projektu"]=czy_przestrzen_niepolska and kod_projektu or nil,};
if(inna_nazwa_przestrzeni~="")then
nazwa=(((((czy_przestrzen)or(not czy_przestrzen_niepolska)))and(nazwa_przestrzeni)and(nazwa_przestrzeni~=""))and (nazwa_przestrzeni..":"..strona) or (strona));
else
--nazwa=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,};
end;
end;
end;
--local nazwa_przestrzeni;
if(czy_przestrzen)then
nazwa_przestrzeni=NazwaPrzestrzeni();
end;
nazwa=z_przestrzenia and nazwa or SformatowanaNazwaStronySzablonuSymbolicznegoWywolania(rozwazana_nazwa_strony,nazwa,nazwa_oryginalna,odsmiec,od_malej);
local linki_modul=require("Module:Linki");
return StworzSymboliczneWywolanieWedlugZebranychDanych(args,odstepy_przed..modyfikatory..przed_nazwa..odstepy_przed_nazwy..linki_modul["Link wewnętrzny"]{["strona"]=NazwaPrefixStrona(((((czy_przestrzen)or(not czy_przestrzen_niepolska)))and(nazwa_przestrzeni)and(nazwa_przestrzeni~=""))and (nazwa_przestrzeni..":"..strona) or (strona)),["nazwa"]=NazwaSzablonu(subnazwa_wyswietlana,subnazwa_bez_ksiazka,nazwa,nazwa_wyswietlana),["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,analiza=analiza,}..odstepy_po_nazwy..po_nazwa..odstepy_po);
end;
local function NieZgodneZKluczemPrzestrzeni(klucz_projektu,kod_jezyka,kod_projektu,czy_przestrzen_niepolska,czy_bez_klucza_przestrzeni,__funkcja,__funkcja2)
local odstepy_przed_nazwy;local odstepy_po_nazwy;
if(__funkcja)then
rozwazana_nazwa_strony,odstepy_przed_nazwy,odstepy_po_nazwy=__funkcja(rozwazana_nazwa_strony,nazwa_oryginalna);
else
rozwazana_nazwa_strony,odstepy_przed_nazwy,odstepy_po_nazwy=UsunDwukropki(rozwazana_nazwa_strony,nazwa_oryginalna);
end;
local strona=nazwy_modul[czy_przestrzen_niepolska and "PEŁNANAZWASTRONY" or "NAZWASTRONY"]{nazwa=rozwazana_nazwa_strony,["klucz projektu"]=czy_przestrzen_niepolska and klucz_projektu or nil,["kod języka"]=czy_przestrzen_niepolska and kod_jezyka or nil,["kod projektu"]=czy_przestrzen_niepolska and kod_projektu or nil,};
if((czy_przestrzen_niepolska)and(__funkcja2))then
nazwa_przestrzeni=__funkcja2(klucz_przestrzeni);
end;
local szablonowe_modul=require("Module:Szablonowe");
local nazwa=z_przestrzenia
and szablonowe_modul["PełnaNazwaStronyWywołańSzablonowych"](strona,klucz_przestrzeni,kod_jezyka,kod_projektu)
or SformatowanaNazwaStronySzablonuSymbolicznegoWywolania(rozwazana_nazwa_strony,strona,nazwa_oryginalna,odsmiec,od_malej);
local linki_modul=require("Module:Linki");
return StworzSymboliczneWywolanieWedlugZebranychDanych(args,odstepy_przed..modyfikatory..przed_nazwa..odstepy_przed_nazwy..linki_modul["Link wewnętrzny"]{["strona"]=NazwaPrefixStrona((not czy_bez_klucza_przestrzeni) and (Strona(strona,klucz_przestrzeni))or((((czy_przestrzen_niepolska)and(__funkcja2)and(nazwa_przestrzeni~="")) and (nazwa_przestrzeni..":") or (""))..strona)),["nazwa"]=NazwaSzablonu(subnazwa_wyswietlana,subnazwa_bez_ksiazka,nazwa,nazwa_wyswietlana),["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,analiza=analiza,}..odstepy_po_nazwy..po_nazwa..odstepy_po);
end;
----
if((czy_jezykowe)and(nazwa_przestrzeni~=""))then
if(czy_biezaca)then
if(nazwa_przestrzeni==nazwy_np_modul[klucz_przestrzeni])then
return ZgodneZKluczemPrzestrzeni(nil,nil,nil,false,true);
else
return NieZgodneZKluczemPrzestrzeni(nil,nil,nil,true);
end;
else
nazwa_przestrzeni=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,kanoniczna="tak",istnieje="tak",["wynik błędu nietekstowy"]="tak",}
if(nazwa_przestrzeni==nazwy_np_modul.kanoniczna[klucz_przestrzeni])then
return ZgodneZKluczemPrzestrzeni(klucz_projektu,kod_jezyka,kod_projektu,false,true);
else
return NieZgodneZKluczemPrzestrzeni(klucz_projektu,kod_jezyka,kod_projektu,true);
end;
end;
else
nazwa_przestrzeni=((czy_jezykowe) and (not czy_biezaca))and nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=rozwazana_nazwa_strony,} or nazwa_przestrzeni;
if(nazwa_przestrzeni~="")then
if(nazwa_przestrzeni==nazwy_np_modul[klucz_przestrzeni])then
if(not czy_jezykowe)then
return ZgodneZKluczemPrzestrzeni(nil,nil,nil,false,true);
else
return ZgodneZKluczemPrzestrzeni(klucz_projektu,kod_jezyka,kod_projektu,true,false);
end;
else
return NieZgodneZKluczemPrzestrzeni(klucz_projektu,kod_jezyka,kod_projektu,true);
end;
elseif((mw.ustring.match(rozwazana_nazwa_strony,"^[%s_]*:[%s_:]*"))and((klucz_przestrzeni~="MediaWiki")and(klucz_przestrzeni~="Module")))then
return NieZgodneZKluczemPrzestrzeni(klucz_projektu,kod_jezyka,kod_projektu,true,true,function(rozwazana_nazwa_strony)
local odstepy_przed_dwukropek,odstepy_po_dwukropek,rozwazana_uzyskana_nazwa_strony,odstepy_po_nazwy=mw.ustring.match(rozwazana_nazwa_strony,"^([%s_]*):([%s_]*)([^%s_:].-)([%s_]*)$");
local przed;
if(not odstepy_przed_dwukropek or not odstepy_po_dwukropek or not rozwazana_uzyskana_nazwa_strony)then
local odstepy_przed_dwukropek,odstepy_po_dwukropek;
odstepy_przed_dwukropek,odstepy_po_dwukropek,rozwazana_uzyskana_nazwa_strony,odstepy_po_nazwy=mw.ustring.match(rozwazana_nazwa_strony,"^([%s_:]*):([%s_]*)([^%s_:].-)([%s_]*)$");
przed=mw.ustring.gsub(odstepy_przed_dwukropek,":","")..":"..odstepy_po_dwukropek;
else
przed=odstepy_przed_dwukropek..":"..odstepy_po_dwukropek;
end;
return rozwazana_uzyskana_nazwa_strony,przed,odstepy_po_nazwy;
end);
else
return NieZgodneZKluczemPrzestrzeni(klucz_projektu,kod_jezyka,kod_projektu,true,true,function(rozwazana_nazwa_strony)
local parametry_modul=require("Module:Parametry");
local rozwazana_nazwa_strony,odstepy_przed_nazwy,odstepy_po_nazwy=UsunDwukropki(rozwazana_nazwa_strony);
local strona=analiza and mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=rozwazana_nazwa_strony,[2]="tak",}) or rozwazana_nazwa_strony;
return strona,odstepy_przed_nazwy,odstepy_po_nazwy;
end,function(klucz_przestrzeni)
local nazwa_przestrzeni=NazwaPrzestrzeni();
return nazwa_przestrzeni;
end);
end;
end;
end;
local function UzyskajDaneOdArgumentuPierwszego(argument_pierwszy,nazwa_wyswietlana)
local przed,pole_nazwy,po=mw.ustring.match(nazwa_wyswietlana or argument_pierwszy,"^([%s_]*)(.-)([%s_]*)$");
local szablonowe_modul=require("Module:Szablonowe");
if(nazwa_wyswietlana)then
argument_pierwszy=mw.ustring.match(argument_pierwszy,"^[%s_]*(.-)[%s_]*$");
end;
local pole,modyfikatory,tab_mod=szablonowe_modul.WydzielanieOpcjiModyfikatorowych(nazwa_wyswietlana and argument_pierwszy or pole_nazwy);
return przed,pole,po,modyfikatory,tab_mod;
end;
local function OdsmiecParametrySymbolicznegoWywolania(args,usun_konce)
local parametry_modul=require("Module:Parametry");
local args2={};
for licznik,wartosc in ipairs(args)do
if(licznik==1)then
args2[licznik]=parametry_modul["Odstępy"]{[1]=wartosc,[2]="tak",};
else
local _parametr,_wartosc=mw.ustring.match(wartosc,"^%s*([^=]-)%s*=%s*(.-)%s*$");
if(_parametr and _wartosc)then
args2[licznik]=_parametr.."=".._wartosc;
elseif(usun_konce)then
args2[licznik]=mw.text.trim(wartosc);
else
args2[licznik]=wartosc;
end
end;
end;
return args2;
end;
local function ParametryFunkcjiSLubM(frame,domyslna_nazwa_szablonu)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local klucz_projektu=args["klucz projektu"] or args["k"];
local kod_jezyka=args["kod języka"] or args["j"];
local kod_projektu=args["kod projektu"] or args["p"];
local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]);
local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]);
local analiza=parametry_modul.CzyTak(args["analiza"]);
local z_przestrzenia=parametry_modul.CzyTak(args["z przestrzenią"]);
local nazwa_wyswietlana=parametry_modul.CzyTak(args["nazwa"]) and args["nazwa"] or nil;
local subnazwa_wyswietlana=parametry_modul.CzyTak(args["subnazwa"]);
local subnazwa_bez_ksiazka=parametry_modul.CzyTak(args["subnazwa bez książka"]);
local argument_pierwszy=args[1];
local czy_niepusty_argument_pierwszy=parametry_modul["CzyTakCiąg"](argument_pierwszy)
local szablonowe_modul=require("Module:Szablonowe");
local function UsuwanieKomentarzy(argument_pierwszy)
---- Usuwanie normalnych komentarzy z kodu.
local techniczne_modul=require("Module:Techniczne");
argument_pierwszy=techniczne_modul.UsuwanieKomentarzowe(argument_pierwszy);
---- Usuwanie zakodowanych komentarzy z kodu.
argument_pierwszy=mw.ustring.gsub(argument_pierwszy,szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ"),"");
return argument_pierwszy;
end;
local argument_pierwszy=czy_niepusty_argument_pierwszy and UsuwanieKomentarzy(argument_pierwszy) or domyslna_nazwa_szablonu;
---
local PrzedPoStronaNazwa=function(nazwa)
if(not nazwa)then return;end;
local nazwa,ile=mw.ustring.gsub(nazwa,szablonowe_modul.NormaWzoruKodowaniaTekstu("OGRANICZNIK"),"");
local przed="";
repeat
local wzor="^([%s_]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ").."[%s_]*)"
local przed_temp=mw.ustring.match(nazwa,wzor);
if(not przed_temp)then break;end;
przed=przed..przed_temp;
nazwa=mw.ustring.gsub(nazwa,wzor,"");
until false;
local po="";
repeat
local wzor="([%s_]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ","%d+").."[%s_]*)$";
local po_temp=mw.ustring.match(nazwa,wzor);
if(not po_temp)then break;end;
po=po_temp..po;
nazwa=mw.ustring.gsub(nazwa,wzor,"");
until false;
local czy_ile=(ile>0)and true or false;
return przed,po,nazwa,czy_ile;
end;
local przed_nazwa,po_nazwa,nazwa,czy_ile=PrzedPoStronaNazwa(nazwa_wyswietlana);
nazwa_wyswietlana=nazwa or nazwa_wyswietlana;
---
local odstepy_przed,rozwazana_nazwa_strony,odstepy_po,modyfikatory,tab_mod=UzyskajDaneOdArgumentuPierwszego(argument_pierwszy,nazwa_wyswietlana);
local __modyfikatory=args["modyfikatory"];
if(__modyfikatory)then
__modyfikatory=mw.ustring.gsub(__modyfikatory,szablonowe_modul.NormaWzoruKodowaniaTekstu("OGRANICZNIK"),"");
end;
modyfikatory=parametry_modul.CzyTak(__modyfikatory) and __modyfikatory or modyfikatory;
if(not parametry_modul["CzyTakCiąg"](rozwazana_nazwa_strony))then
rozwazana_nazwa_strony=domyslna_nazwa_szablonu;
end;
if(czy_ile)then
rozwazana_nazwa_strony=parametry_modul["Odstępy"](rozwazana_nazwa_strony);
modyfikatory=mw.ustring.gsub(modyfikatory,"[%s_]+$","");
end;
args[1]=rozwazana_nazwa_strony;
analiza=(not analiza)and (args[1] and mw.ustring.match(args[1],"^[%s_:]*[^%s_:]+:.*$") and true or false) or analiza;
bez_przetwarzania=bez_przetwarzania or ((not analiza) and "tak" or nil);
local nazwa_oryginalna=(not analiza and true) or parametry_modul.CzyTak(args["oryginalna"] or args["o"]);
local odsmiec=(not analiza and true) or parametry_modul.CzyTak(args["odśmieć"]);
local historia=(not analiza and true) or parametry_modul.CzyTak(args["historia"]);
local usun_konce=parametry_modul.CzyTak(args["usuń końce"]);
local od_malej=parametry_modul.CzyTak(args["od małej"]);
local usun_odstepy=parametry_modul.CzyTak(args["usuń odstępy"]);
if(usun_odstepy)then
odstepy_przed="";
odstepy_po="";
if(odsmiec)then
if(mw.ustring.match(rozwazana_nazwa_strony,"^[%s_]*:"))then
rozwazana_nazwa_strony=mw.ustring.gsub(rozwazana_nazwa_strony,"^[%s_:]*","");
rozwazana_nazwa_strony=":"..rozwazana_nazwa_strony;
end;
rozwazana_nazwa_strony=parametry_modul["Odstępy"]{[1]=rozwazana_nazwa_strony,[2]=nil,[3]=nil,};
end;
end;
if((odsmiec)and(not historia))then args=OdsmiecParametrySymbolicznegoWywolania(args,usun_konce);end;
if((odsmiec)and(not historia))then modyfikatory=mw.ustring.gsub(modyfikatory,"[%s_]*","");end;
if(analiza)then
local wiki_modul=require("Module:Wiki");
kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local koncowa_rozwazana_nazwa_strony;
koncowa_rozwazana_nazwa_strony,kod_jezyka,kod_projektu=wiki_modul.KodyNazwyStrony(rozwazana_nazwa_strony,kod_jezyka,kod_projektu);
klucz_projektu=nil;
if(koncowa_rozwazana_nazwa_strony~=rozwazana_nazwa_strony)then
local techniczne_modul=require("Module:Techniczne");
local wzor_rozwazana_nazwa_strony=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](koncowa_rozwazana_nazwa_strony);
local koncowa_rozwazana_nazwa_strony_wynikowa_kodow=mw.ustring.gsub(rozwazana_nazwa_strony,wzor_rozwazana_nazwa_strony.."$","");
if(mw.ustring.match(koncowa_rozwazana_nazwa_strony_wynikowa_kodow,":[%s_]*:[%s_]*$"))then
koncowa_rozwazana_nazwa_strony_wynikowa_kodow=mw.ustring.gsub(koncowa_rozwazana_nazwa_strony_wynikowa_kodow,"(:[%s_]*)$","");
end;
local wzor_koncowa_rozwazana_nazwa_strony_wynikowa_kodow=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](koncowa_rozwazana_nazwa_strony_wynikowa_kodow);
local odstep_kodow=((not odsmiec) or (not usun_odstepy)) and mw.ustring.gsub(koncowa_rozwazana_nazwa_strony_wynikowa_kodow,"[%w%p]","") or "";
rozwazana_nazwa_strony=mw.ustring.gsub(rozwazana_nazwa_strony,"^"..wzor_koncowa_rozwazana_nazwa_strony_wynikowa_kodow,odstep_kodow);
rozwazana_nazwa_strony=((odsmiec)and(usun_odstepy)) and mw.ustring.gsub(rozwazana_nazwa_strony,"^[%s_:]*:[%s_:]*",":") or rozwazana_nazwa_strony;
else
local pudelko_modul=require("Module:Pudełko");
kod_jezyka=((not kod_jezyka)or(kod_jezyka~=pudelko_modul["Kod języka tego projektu"]()))and kod_jezyka or nil;
kod_projektu=((not kod_projektu)or(kod_projektu~=pudelko_modul["Kod projektu tego projektu"]()))and kod_projektu or nil;
end
end;
analiza=analiza and "tak" or nil;
--odstepy_przed=odstepy_przed..(przed_nazwa or "");
--odstepy_po=(po_nazwa or "")..odstepy_po;
przed_nazwa=(przed_nazwa or "");
po_nazwa=(po_nazwa or "");
return args,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,bez_znacznikow,bez_przetwarzania,z_przestrzenia,analiza,nazwa_oryginalna,odsmiec,historia,usun_konce,od_malej,usun_odstepy,argument_pierwszy,odstepy_przed,przed_nazwa,rozwazana_nazwa_strony,po_nazwa,odstepy_po,modyfikatory,tab_mod;
end;
local CzyJestHash=function(rozwazana_nazwa_strony)
local html_modul=require("Module:Html");
rozwazana_nazwa_strony=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](rozwazana_nazwa_strony);
local ciag=mw.ustring.match(rozwazana_nazwa_strony,"^(.-)%{%{") or rozwazana_nazwa_strony;
local czy_tak=mw.ustring.match(ciag,"#") and true or false;
return czy_tak;
end;
local p={
["S"] = function(frame)
local args,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,bez_znacznikow,bez_przetwarzania,z_przestrzenia,analiza,nazwa_oryginalna,odsmiec,historia,usun_konce,od_malej,usun_odstepy,argument_pierwszy,odstepy_przed,przed_nazwa,rozwazana_nazwa_strony,po_nazwa,odstepy_po,modyfikatory,tab_mod=ParametryFunkcjiSLubM(frame,"Nieznany szablon");
if(CzyJestHash(rozwazana_nazwa_strony))then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tekst="Problem z wywołaniem symbolicznym szablonu {{s}}: W nazwie strony znaleziono znak \"#\", co jest mylone z nagłówkiem strony!",tag="strong",},};
end;
local s_dane=mw.loadData('Module:S/dane');
local tab_magiczne_szablony=s_dane.tab_magiczne_szablony;
if(tab_mod)then
local parametry_modul=require("Module:Parametry");
if(not parametry_modul["CzySąElementyNazwaneTablicy"](tab_mod))then
if(not tab_magiczne_szablony[rozwazana_nazwa_strony])then
return SzablonoweSymboliczneWywolanie(args,modyfikatory,"Template",rozwazana_nazwa_strony,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,odstepy_przed,odstepy_po,przed_nazwa,po_nazwa,nazwa_oryginalna,bez_znacznikow,bez_przetwarzania,z_przestrzenia,odsmiec,od_malej,analiza);
else
return StworzSymboliczneWywolanieWedlugZebranychDanych(args, odstepy_przed..modyfikatory..przed_nazwa,(args[1] or "Nieznany tag")..po_nazwa..odstepy_po);
end;
elseif(tab_mod["#if:"] or tab_mod["#ifeq:"] or tab_mod["#iferror:"] or tab_mod["#tag:"] or tab_mod["#switch:"] or tab_mod["#property:"] or tab_mod["#expr:"] or tab_mod["#ifexpr:"] or tab_mod["#ifexist:"] or tab_mod["#time:"] or tab_mod["gender:"] or tab_mod["DEFAULTSORT:"])then
return StworzSymboliczneWywolanieWedlugZebranychDanych(args, odstepy_przed..modyfikatory..(args[1] or "Nieznany tag")..odstepy_po);
elseif((not tab_mod["#invoke:"])and(not tab_mod["int:"]))then
if(not tab_magiczne_szablony[rozwazana_nazwa_strony])then
return SzablonoweSymboliczneWywolanie(args,modyfikatory,"Template",rozwazana_nazwa_strony,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,odstepy_przed,odstepy_po,przed_nazwa,po_nazwa,nazwa_oryginalna,bez_znacznikow,bez_przetwarzania,z_przestrzenia,odsmiec,od_malej,analiza);
else
return StworzSymboliczneWywolanieWedlugZebranychDanych(args, odstepy_przed..modyfikatory..przed_nazwa..(args[1] or "Nieznany tag")..po_nazwa..odstepy_po);
end;
elseif((tab_mod["#invoke:"]) and (not tab_mod["int:"]))then
return SzablonoweSymboliczneWywolanie(args,modyfikatory,"Module",rozwazana_nazwa_strony,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,odstepy_przed,odstepy_po,przed_nazwa,po_nazwa,nazwa_oryginalna,bez_znacznikow,bez_przetwarzania,z_przestrzenia,odsmiec,od_malej,analiza);
elseif((tab_mod["int:"]) and (not tab_mod["#invoke:"]))then
return SzablonoweSymboliczneWywolanie(args,modyfikatory,"MediaWiki",rozwazana_nazwa_strony,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,odstepy_przed,odstepy_po,przed_nazwa,po_nazwa,nazwa_oryginalna,bez_znacznikow,bez_przetwarzania,z_przestrzenia,odsmiec,od_malej,analiza);
elseif(tab_mod["int:"] and tab_mod["#invoke:"])then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tekst="Problem z wywołaniem symbolicznym szablonu {{s}}: Podano sprzeczne ze sobą modyfikatory podstawowe!",tag="strong",},};
else
if(not tab_magiczne_szablony[rozwazana_nazwa_strony])then
return SzablonoweSymboliczneWywolanie(args,modyfikatory,"Template",rozwazana_nazwa_strony,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,odstepy_przed,odstepy_po,przed_nazwa,po_nazwa,nazwa_oryginalna,bez_znacznikow,bez_przetwarzania,z_przestrzenia,odsmiec,od_malej,analiza);
else
return StworzSymboliczneWywolanieWedlugZebranychDanych(args, odstepy_przed..modyfikatory..przed_nazwa..(args[1] or "Nieznany tag")..po_nazwa..odstepy_po);
end;
end;
else
if(not tab_magiczne_szablony[rozwazana_nazwa_strony])then
return SzablonoweSymboliczneWywolanie(args,modyfikatory,"Template",rozwazana_nazwa_strony,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,odstepy_przed,odstepy_po,przed_nazwa,po_nazwa,nazwa_oryginalna,bez_znacznikow,bez_przetwarzania,z_przestrzenia,odsmiec,od_malej,analiza);
else
return StworzSymboliczneWywolanieWedlugZebranychDanych(args, odstepy_przed..modyfikatory..(args[1] or "Nieznany tag")..odstepy_po);
end;
end;
end,
["M"] = function(frame)
local args,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,bez_znacznikow,bez_przetwarzania,z_przestrzenia,analiza,nazwa_oryginalna,odsmiec,historia,usun_konce,od_malej,usun_odstepy,argument_pierwszy,odstepy_przed,przed_nazwa,rozwazana_nazwa_strony,po_nazwa,odstepy_po,modyfikatory,tab_mod=ParametryFunkcjiSLubM(frame,"Nieznany moduł");
if(CzyJestHash(rozwazana_nazwa_strony))then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tekst="Problem z wywołaniem symbolicznym szablonu {{m}}: W nazwie strony znaleziono znak \"#\", co jest mylone z nagłówkiem strony!",tag="strong",},};
end;
rozwazana_nazwa_strony=odstepy_przed..rozwazana_nazwa_strony;
odstepy_przed="";
return SzablonoweSymboliczneWywolanie(args,"#invoke:","Module",rozwazana_nazwa_strony,nazwa_wyswietlana,subnazwa_wyswietlana,subnazwa_bez_ksiazka,klucz_projektu,kod_jezyka,kod_projektu,odstepy_przed,odstepy_po,przed_nazwa,po_nazwa,nazwa_oryginalna,bez_znacznikow,bez_przetwarzania,z_przestrzenia,odsmiec,od_malej,analiza);
end,
}
return p;
2x6g48rfllhokjj4q4qxwl3newmtgmt
Szablon:ISYEARLEAP
10
50905
557853
348288
2026-09-28T19:24:11Z
Persino
2851
557853
wikitext
text/x-wiki
<includeonly>{{#ifexpr: {{{1|{{CURRENTYEAR}}}}} > 1582|{{#expr: ({{{1|{{CURRENTYEAR}}}}} mod 4 = 0) and not ({{{1|{{CURRENTYEAR}}}}} mod 100 = 0) or ({{{1|{{CURRENTYEAR}}}}} mod 400 = 0)}}|{{#expr: {{{1|{{CURRENTYEAR}}}}} mod 4 = 0}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
gnvhkgolotnw33qa5soe0s7vfhlw8d9
Szablon:NawigacjaSpecjalna
10
56789
557819
557806
2026-09-28T16:32:49Z
Persino
2851
557819
wikitext
text/x-wiki
<includeonly><!--
-->{{#invoke:Ramka|Szablon
| Nazwa = {{Jeśli istnieje
| NawigacjaSpecjalna/Styl/<!--
-->{{Jeśli niepuste
| 1 = {{PobierzUstawienia|NawigacjaSpecjalna/Ustawienia/{{Jeśli niepuste|{{{książka|}}}|{{#invoke:Ramka|Szablon|Nazwa=AktualnaKsiążka|parametry funkcji modułu pudełek=tak}}}}|nawigacja:styl}}
| 2 = Prosty
}}
| NawigacjaSpecjalna/Styl/Prosty
| przedrostek = {{Ns:Template}}:
}}
| książka = {{Jeśli niepuste|{{{książka|}}}|{{#invoke:Ramka|Szablon|Nazwa=AktualnaKsiążka|parametry funkcji modułu pudełek=tak}}}}
| poprz = {{{poprz|}}}
| spis treści = {{Jeśli niepuste|{{{spis treści|}}}|[[{{#invoke:Ramka|Szablon|Nazwa=AktualnaKsiążka|parametry funkcji modułu pudełek=tak}}|Spis treści]]}}
| nast = {{{nast|}}}
| parametry funkcji modułu pudełek = tak
}}</includeonly><noinclude>{{Dokumentacja|Szablon:Autonawigacja/opis}}</noinclude>
pialabikz0mgxhllyznxv7te546ddsi
Moduł:StronicowyParser/Rozdziały
828
58234
557982
557787
2026-09-29T10:42:11Z
Persino
2851
557982
Scribunto
text/plain
local p={};
function p.NapisWprowadzeniaTekstu(rozdzial,poziom,id)
local naglowek;
poziom=poziom or 1;
poziom=(poziom>0)and poziom or 1;
if(poziom<=6)then
local str_poziom=mw.ustring.rep("=",poziom);
naglowek="\n"..str_poziom..rozdzial..str_poziom.."\n";
else
naglowek="\n<h6 "..(id and ("id=\""..id.."\"") or "").." class=\"mw-hnumber mw-hnumber-"..poziom.."\">"..rozdzial.."</h6>\n";
end;
return naglowek;
end;
function p.NapisWprowadzeniaTekstuHn(rozdzial,poziom,tab_atrybuty)
local naglowek;
poziom=poziom or 1;
poziom=(poziom>0)and poziom or 1;
local atrybuty_wikikod;
if(tab_atrybuty)then
for name,value in pairs(tab_atrybuty)do
value=mw.ustring.gsub(value,"\"","\\\"");
local element=name.."=\""..value.."\"";
atrybuty_wikikod=(atrybuty_wikikod or "")..(atrybuty_wikikod and " " or "")..element;
end;
end;
if(poziom<=6)then
local str_poziom=mw.ustring.rep("=",poziom);
naglowek="\n<h"..poziom.." "..(atrybuty_wikikod or "")..">"..rozdzial.."</h"..poziom..">\n";
else
naglowek="\n<h6 "..(atrybuty_wikikod or "").." class=\"mw-hnumber mw-hnumber-"..poziom.."\">"..rozdzial.."</h6>\n";
end;
return naglowek;
end;
function p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego(tekst,zawartosc,obiekt,kod)
if(mw.ustring.match(zawartosc,"\n"))then return false;end;
local szablonowe_modul=require("Module:Szablonowe");
local kod_norma_wzoru_obiektu=szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod);
tekst='\n'..tekst..'\n';
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;
return false;
end;
function p.NapisWprowadzeniaTekstuHNumer(parametr)
local naglowek,poziom=p.PodajNapisPoziomuWprowadzeniaTekstu(parametr);
if(not naglowek)then return nil;end;
if(poziom<=6)then
return "<h"..poziom..">"..naglowek.."</h"..poziom..">";
else
return "<h6 class=\"mw-hnumber mw-hnumber-"..poziom.."\">"..naglowek.."</h6>";
end;
end;
function p.PodajNapisPoziomuWprowadzeniaTekstu(linia)
if(mw.ustring.match(linia,"^%s*=*%s*$"))then
return nil,0;
end;
local rowna_lewy=mw.ustring.match(linia,"^(=+)");
local rowna_prawy=mw.ustring.match(linia,"(=+)%s*$");
if((rowna_lewy)and(rowna_prawy))then
local min_rowna=math.min(#rowna_lewy,#rowna_prawy);
local str_min_rowna=mw.ustring.rep("=",min_rowna);
local naglowek=mw.ustring.match(linia,"^%s*"..str_min_rowna.."([^\n]*[^\n%=][^\n]*)"..str_min_rowna.."%s*$");
if(not naglowek)then
return nil,0;
end;
local naglowek=mw.text.trim(naglowek);
return naglowek,min_rowna;
else
return nil,0;
end;
end;
function p.PodajTekstHNumerNapisuWprowadzeniaTekstu(linia)
local liczba1,zawartosc,liczba2=mw.ustring.match(linia,"<[Hh](%d+)[^<>]*>(.-)</[Hh](%d+)>");
if(not liczba1)then return nil;end;
if((#liczba1==1)and(#liczba2==1)and(liczba1==liczba2))then
local liczba1=tonumber(liczba1);
if(not liczba1)then return nil;end;
if((liczba1<1)or(liczba1>6))then return nil;end;
return zawartosc,liczba1;
end;
return nil;
end;
function p.CzyJestNapisWprowadzeniaTekstu(zawartosc)
return mw.ustring.match(zawartosc,"^=+[^\n]*[^=\n]+[^\n]*=+[^%S\n]*\n")
or mw.ustring.match(zawartosc,"\n=+[^\n]*[^=\n]+[^\n]*=+[^%S\n]*\n")
or mw.ustring.match(zawartosc,"\n=+[^\n]*[^=\n]+[^\n]*=+[^%S\n]*$")
or mw.ustring.match(zawartosc,"^=+[^\n]*[^=\n]+[^\n]*=+[^%S\n]*$");
end;
function p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)
return mw.ustring.match(zawartosc,"^[;%*:#]+")
or mw.ustring.match(zawartosc,"\n[;%*:#]+");
end;
function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)
local czy_naglowek=p.CzyJestNapisWprowadzeniaTekstu(wiersz);
if(czy_naglowek)then return true,true;end;
--czy_naglowek=mw.ustring.match(wiersz,"<[Hh]%d+[^<>]*>(.+)</[Hh]%d+>");
local czy_naglowek=p.PodajTekstHNumerNapisuWprowadzeniaTekstu(wiersz) and true or false;
return czy_naglowek,false;
end;
function p.WierszHNumer(tekst)
local tekst=mw.ustring.gsub(tekst,"(<[Hh](%d+)[^<>]*>)(.-)(</[Hh]%2%s*>)",function(lewy,poziom,tekst,prawy)
poziom=tonumber(poziom) or 0;
if((poziom>=1)and(poziom<=6))then
tekst=mw.ustring.gsub(tekst,"\n"," ");
return "\n"..lewy..tekst..prawy.."\n";
end;
end);
return tekst;
end;
function p.CzyJestJakikolwiekLinkArtykularnyTekstu(tekst,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
-----
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy;
local inne_linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy;
-----
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
-----
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iter do
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if((linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod)))then
return true;
end;
end);
if(wynik)then return wynik;end;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
return true;
--elseif((obiekt=="MATH")or(obiekt=="ŹRÓDŁO"))then
--return true;
end;
end;
return false;
end;
function p.CzyJestInnySpecjalnyTekstowyObiekt(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul)
local szablonowe_modul=require("Module:Szablonowe");
-----
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iter do
if((obiekt=="INNEPRE")or(obiekt=="PRE")or(obiekt=="ŹRÓDŁO")or(obiekt=="MATH")or(obiekt=="GALERIA")or(obiekt=="MAPAOBRAZU"))then
return true;
end;
end;
return false;
end;
function p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja)
local czy=mw.ustring.match(rozdzial_z_numeracja,"^[%d%.]+%s+") or mw.ustring.match(rozdzial_z_numeracja,"^[%d%.]+%s*$");
if(czy)then
local num=mw.ustring.match(rozdzial_z_numeracja,"^([%d%.]+)");
local tab=mw.text.split(num,"%.",false);
if(#tab==1)then
if(mw.ustring.match(num,"^%d+$"))then
return rozdzial_z_numeracja,"";
end;
else
if(tab[#tab]=="")then tab[#tab]=nil;end;
end;
local tak=true;
for i=1,#tab,1 do
tak=tak and mw.ustring.match(tab[i],"^%d+$");
if(not tak)then break;end;
end;
if(tak)then
local numeracja=mw.ustring.match(rozdzial_z_numeracja,"^([%d%.]+)%s*");
local rozdzial_bez_numeracji=mw.ustring.gsub(rozdzial_z_numeracja,"^[%d%.]+%s*","");
return rozdzial_bez_numeracji,numeracja;
end;
end;
return rozdzial_z_numeracja,"";
end;
function p.__FUNKCJA_KOMPLETOWANIA(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local tab_kom=stronicowyparser_obiekty_modul.szablony_kompletowania_stron_woluminu;
return tab_kom[nazwa_szablonu];
end;
function p.UruchamianieAnalizatoraSpisuRzeczyStrony()
return true;
end;
function p.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local rozdzial=mw.ustring.match(linia,"^('+..-:[%s_]-'*)[%s_]*$") or ((not mw.ustring.match(linia,"^%s+"))and(mw.ustring.match(linia,"^(..-:[%s_]-'*)[%s_]*$")));
if(rozdzial)then
return rozdzial,true;
else
local stronicowyparser_analizaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local spis_tresci=stronicowyparser_analizaspisurzeczy_modul.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,true);
if(spis_tresci)then
return linia,true;
else
local rozdzial,main=nil,nil;
if(not mw.ustring.match(linia,"^'+.-[^'%s].-'+.-[^'%s]%s*$"))then
rozdzial,main=mw.ustring.match(linia,"^('+[%s_]*(..-)[%s_]*'*)[%s_]*$");
end;
if(rozdzial)then
local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści");
local rozdzial_main=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(rozdzial,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if(not mw.ustring.match(rozdzial_main,"^.*![%s_]*'*[%s_]*$"))then
if(mw.ustring.match(rozdzial_main,"^[^']-$"))then
if((not mw.ustring.match(rozdzial_main,"^%u[%s_]"))and(not mw.ustring.match(rozdzial_main,"[%s_]%u$")))then
return rozdzial,true;
end;
end;
end;
else
local czy_nie_rozdzial_zerowy=mw.ustring.match(linia,"%.%s*$");
if(czy_nie_rozdzial_zerowy)then return linia,false;end;
end;
return nil;
end;
end;
end;
function p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,z_parametrami_linkowymi,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
if((not przedrotek_listy)or(#przedrotek_listy==0))then return false;end;
local czy_dwukropki=mw.ustring.match(przedrotek_listy,"^:+$");
if(not czy_dwukropki)then return false;end;
local czy_miedzy_cudzyslowami=mw.ustring.match(linia,"^%s*''+.+'*%s*$");
if(not czy_miedzy_cudzyslowami)then return false;end;
if(not z_parametrami_linkowymi)then return true;end;
local szablonowe_modul=require("Module:Szablonowe");
local czy_sa_kody=mw.ustring.match(linia,szablonowe_modul.NormaWzoruKodowaniaTekstu());
if(not czy_sa_kody)then return true;end;
local szablonowe_modul=require("Module:Szablonowe");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
if((obiekt=="SZABLON")or(obiekt=="LINKW"))then
local tab_pozycja_elementow_w_spisie_rzeczy,numer_rodzaju_artykulu,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,nil);
if((tab_pozycja_elementow_w_spisie_rzeczy)and(numer_rodzaju_artykulu==1))then
return false;
end;
end;
end;
return true;
end;
function p.HnNumerWprowadzeniaTekstu(nazwa,atrybuty)
local stronicowyparser_obiekty_modul=mw.loadData('Module:StronicowyParser/obiekty');
local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu;
local numer_rozdzialu=znaczniki_wprowadzenia_tekstu[nazwa];
if((atrybuty)and(numer_rozdzialu>=6))then
local klasa=atrybuty["class"];
if(klasa)then
local mw_hnumber_liczba=mw.ustring.match(klasa,"^%s*mw%-hnumber%-(%d+)%s*$")
or mw.ustring.match(klasa,"^%s*mw%-hnumber%-(%d+)%s+")
or mw.ustring.match(klasa,"%s+mw%-hnumber%-(%d+)%s+")
or mw.ustring.match(klasa,"%s+mw%-hnumber%-(%d+)%s*$");
mw_hnumber_liczba=tonumber(mw_hnumber_liczba) or 6;
mw_hnumber_liczba=(mw_hnumber_liczba>6) and mw_hnumber_liczba or 6;
numer_rozdzialu=mw_hnumber_liczba or numer_rozdzialu;
end;
end;
return numer_rozdzialu;
end;
function p.NumeracjaOrazTekstWprowadzeniaTekstu(zawartosc)
local numeracja,rozdzial=mw.ustring.match(zawartosc,"^%s*([%d%.]*)%s*(.-)%s*$");
return numeracja,rozdzial;
end;
function p.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
local zacznij;local wprowadzenie;local zawsze=false;local ostatnie=false;local bez_kropki=nil;local spac=nil;local nie_rozdzial=nil;local nie_numerowany=nil;
local stronicowyparser_obiekty_modul=mw.loadData('Module:StronicowyParser/obiekty');
local parametry_modul=require("Module:Parametry");
local szablonowe_modul=require("Module:Szablonowe");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści");
local stronicowyparser_analizaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local techniczne_modul=require("Module:Techniczne");
local specjalne_modul=require("Module:Specjalne");
local strony_modul=require("Module:Strony");
local szablony_wprowadzenia_napisu_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy;
local linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy;
local inne_linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy;
local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu;
local maksymalny_rozmiar_rozdzialu_zerowego=70;
return function(linia,tak_ce_spis_tresci)
----
local rozdzial=nil;local numeracja=nil;
local poczatek,rozdzial_z_numeracja=mw.ustring.match(linia,"^([#:%*;]+)%s*('*%s*[%d%.]*%s*.-%s*'*)%s*$");
local rozdzial_z_numeracja_nie_przetworzone=nil;
-----
----
if(not poczatek and not rozdzial_z_numeracja)then
rozdzial_z_numeracja=mw.ustring.match(linia,"^([%d%.]+%s*.-)%s*$") or mw.ustring.match(linia,"^'+(%s*[%d%.]+%s*.-)%s*'*%s*$")
if(rozdzial_z_numeracja)then
poczatek="";
rozdzial_z_numeracja=specjalne_modul["UsuńZnakiSpecjalne"](rozdzial_z_numeracja);
rozdzial_z_numeracja=mw.ustring.gsub(rozdzial_z_numeracja,"^(%s+)","");
rozdzial_z_numeracja=mw.ustring.gsub(rozdzial_z_numeracja,"(%s+)$","");
rozdzial,numeracja=p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja);
else
local function LiniaCydzyslow(linia)
local linia_wew_cudz=mw.ustring.match(linia,"^'+%s*(.-[^']+.-)%s*'+%s*$")
if(not linia_wew_cudz)then return false;end;
return not (mw.ustring.match(linia_wew_cudz,'^%u[%u%s]*$')
and((mw.ustring.match(linia_wew_cudz,"%s%u%s"))or(mw.ustring.match(linia_wew_cudz,"^%u%s"))or(mw.ustring.match(linia_wew_cudz,"%s%u$"))))
end;
if(LiniaCydzyslow(linia))then
rozdzial=linia;
poczatek="";
numeracja="";
else
local url_iter=mw.ustring.gmatch(linia,"(%S+)");
local czy_rozdzial=false;
for url in url_iter do
czy_rozdzial=czy_rozdzial or strony_modul.SprawdzanieURL(url);
if(czy_rozdzial)then
break;
end;
end;
if(czy_rozdzial)then
poczatek="";
numeracja="";
rozdzial=linia;
end;
end;
end;
else
rozdzial_z_numeracja_nie_przetworzone=rozdzial_z_numeracja;
rozdzial_z_numeracja=specjalne_modul["UsuńZnakiSpecjalne"](rozdzial_z_numeracja);
rozdzial_z_numeracja=mw.ustring.gsub(rozdzial_z_numeracja,"^(%s+)","");
rozdzial_z_numeracja=mw.ustring.gsub(rozdzial_z_numeracja,"(%s+)$","");
rozdzial,numeracja=p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja);
end;
local ze_specialnymi_obiektami=((rozdzial) and true or false);local czy_centrowanie=false;local czy_znaczniki_hn=false;local tekst;
local nazwa,zawartosc,atrybuty;
if(rozdzial)then tekst=rozdzial;else tekst=linia;end;
----
local function WykluczenieNieodpowiednichNormSzablonowych(rozdzial)
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(rozdzial,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
if((obiekt=="GALERIA")or(obiekt=="ŹRÓDŁO")or(obiekt=="PRE")or(obiekt=="INNEPRE")or(obiekt=="WIKITABELA")or(obiekt=="MAPAOBRAZU"))then
return nil;
elseif(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(stronicowyparser_obiekty_modul.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego[nazwa_szablonu])then
return true;
end;
end);
if(wynik)then return nil;end;
end;
end;
return true;
end;
local FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu=function(wartosc)
if(mw.ustring.match(wartosc,"^%s*%d+%s*/%s*%d+%s*$"))then return nil;end;
if(mw.ustring.match(wartosc,"!%s*'*%s*$"))then return nil;end;
numeracja,rozdzial=p.NumeracjaOrazTekstWprowadzeniaTekstu(wartosc);
if(rozdzial)then
local wynik=WykluczenieNieodpowiednichNormSzablonowych(rozdzial);
if(not wynik)then
numeracja=nil;rozdzial=nil;
return nil;
end;
end;
end;
local function NiestardardoweSzablonoweWprowdzeniaTekstu(szablon,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(czy_ce)then
local wartosc=tabela_parametrow_szablonu[czy_ce];
if(wartosc)then
return FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu(wartosc);
end;
return nil;
end;
end;
local function NiestardardoweZnacznikoweWprowdzeniaTekstu(szablon,nazwa,zawartosc,atrybuty)
if(zawartosc)then
if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
return FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu(zawartosc);
end;
end;
return nil;
end;
----
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
---
local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(czy_ce)then
ze_specialnymi_obiektami=true;
czy_centrowanie=true;
NiestardardoweSzablonoweWprowdzeniaTekstu(szablon,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow);
--if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
return true;
elseif((linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod)))then
ze_specialnymi_obiektami=true;
if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
return true;
end;
end);
if(wynik)then return;end;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
ze_specialnymi_obiektami=true;
return nil;
elseif((obiekt=="PRE")or(obiekt=="MATH")or(obiekt=="ŹRÓDŁO")or(obiekt=="INNEPRE"))then
if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
ze_specialnymi_obiektami=true;
return nil;
elseif(obiekt=="ZNACZNIK")then
nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
if(nazwa=="center")then
ze_specialnymi_obiektami=true;
czy_centrowanie=true;
NiestardardoweZnacznikoweWprowdzeniaTekstu(szablon,nazwa,zawartosc,atrybuty);
--if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
return nil;
elseif(znaczniki_wprowadzenia_tekstu[nazwa])then
ze_specialnymi_obiektami=true;
czy_znaczniki_hn=true;
NiestardardoweZnacznikoweWprowdzeniaTekstu(szablon,nazwa,zawartosc,atrybuty);
return nil;
end;
end;
end;
return szablon;
end);
for szablon,obiekt,kod in iter do end;
rozdzial=rozdzial and parametry_modul["Odstępy"](rozdzial) or nil;
poczatek=poczatek and parametry_modul["Odstępy"](poczatek) or nil;
numeracja=numeracja and parametry_modul["Odstępy"](numeracja) or nil;
if(not ze_specialnymi_obiektami)then
local rozdzial,czy_standardowe_rozdzialy=p.CzyZerowyNapisWprowadzeniaTekstu(rozdzial or linia,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if((rozdzial)and(czy_standardowe_rozdzialy))then
if(#rozdzial<=maksymalny_rozmiar_rozdzialu_zerowego)then
if(not mw.ustring.match(rozdzial,"^.+[%.%;!,%?]%s*'+%s*$"))then
return linia,rozdzial,0,nil,numeracja;
else
return nil;
end;
else
local czy_poczatek_niepusty=parametry_modul.CzyTak(poczatek);
local czy_numeracja_niepusta=parametry_modul.CzyTak(numeracja);
if(((not czy_poczatek_niepusty)or(#poczatek==0))and((not czy_numeracja_niepusta)or(#numeracja==0)))then
return nil;
elseif(not mw.ustring.match(rozdzial,"^.+[%.%;!,%?]%s*'+%s*$"))then
return linia,rozdzial,0,nil,numeracja;
else
return nil;
end;
end;
else
return nil;
end;
elseif(czy_centrowanie)then
if(tak_ce_spis_tresci)then
if((rozdzial)and(numeracja))then
if((not parametry_modul.CzyTak(numeracja))and(not parametry_modul.CzyTak(rozdzial)))then
return nil,nil,nil,nil;
end;
return linia,rozdzial,2,nil,numeracja,true;
end;
end;
return nil;
elseif(czy_znaczniki_hn)then
if((rozdzial)and(numeracja))then
if((not parametry_modul.CzyTak(numeracja))and(not parametry_modul.CzyTak(rozdzial)))then
return nil,nil,nil,nil;
end;
local numer_rozdzialu=p.HnNumerWprowadzeniaTekstu(nazwa,atrybuty);
return linia,rozdzial,numer_rozdzialu,nil,numeracja;
end;
elseif(rozdzial)then
local czy_numeracja_niepusta=parametry_modul.CzyTak(numeracja);
local czy_rozdzial_niepusty=parametry_modul.CzyTak(rozdzial);
if((not czy_numeracja_niepusta)and(not czy_rozdzial_niepusty))then
return nil;
end;
if(#rozdzial<=maksymalny_rozmiar_rozdzialu_zerowego)then
local czy_pominac_ten_rozdzial_jako_rozdzial=rozdzial_z_numeracja_nie_przetworzone and p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(poczatek,rozdzial_z_numeracja_nie_przetworzone,false,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) or nil;
if(not czy_pominac_ten_rozdzial_jako_rozdzial)then
if((#poczatek>0)or(not mw.ustring.match(rozdzial,"^.+[%.%;!,%?]%s*'+%s*$")))then
return linia,rozdzial,(#poczatek*(-1)),poczatek,numeracja;
else
return nil;
end;
else
return nil;
end;
else
local czy_poczatek_niepusty=parametry_modul.CzyTak(poczatek);
if(((not czy_poczatek_niepusty)or(#poczatek==0))and((not czy_numeracja_niepusta)or(#numeracja==0)))then
return nil;
else
local czy_pominac_ten_rozdzial_jako_rozdzial=rozdzial_z_numeracja_nie_przetworzone and p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(poczatek,rozdzial_z_numeracja_nie_przetworzone,false,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) or nil;
if(not czy_pominac_ten_rozdzial_jako_rozdzial)then
if((#poczatek>0)or(not mw.ustring.match(rozdzial,"^.+[%.%;!,%?]%s*'+%s*$")))then
return linia,rozdzial,(#poczatek*(-1)),poczatek,numeracja;
else
return nil;
end;
else
return nil;
end;
end;
end;
else
return nil;
end;
return nil;
end;
end;
function p.TekstPoNapisieWprowadzeniaTekstuStrony(frame)
local strona=frame.args[1];
local id_rozdzialu1=frame.args[2] or "";
local id_rozdzialu2=frame.args[3] or "";
strona=frame:preprocess(strona);
local title=mw.title.makeTitle('',strona);
if((not title)or(not title.exists))then
return nil;
end;
local tekst=title:getContent();
if(not tekst)then return nil;end;
return p.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2);
end;
function p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(tekst)
tekst=mw.ustring.gsub(tekst,"^[%s_]+","");
tekst=mw.ustring.gsub(tekst,"[%s_]+$","");
tekst=mw.ustring.gsub(tekst,"[%s_]+","_");
return tekst;
end;
function p.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony(frame)
local strona=frame.args[1];
local id_rozdzialu=frame.args[2] or "";
strona=frame:preprocess(strona);
local title=mw.title.makeTitle('',strona);
if((not title)or(not title.exists))then
return nil;
end;
local tekst=title:getContent();
if(not tekst)then return nil;end;
id_rozdzialu=frame:preprocess(id_rozdzialu);
local specjalne_modul=require("Module:Specjalne");
id_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](id_rozdzialu);
id_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(id_rozdzialu);
local html_modul=require("Module:Html");
id_rozdzialu=html_modul.DecodeKoduHTMLZnaku(id_rozdzialu);
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
--tekst=mw.ustring.gsub(tekst,"\n\n","\n\n");
tekst=p.WierszHNumer(tekst);
local szeregi_modul=require("Module:Szeregi");
local iter=szeregi_modul.IteratorLiniiTekstu(tekst);
local tab_rozdzialy={};
local specjalne_modul=require("Module:Specjalne");
for wiersz in iter do
local czy_naglowek,czy_naglowek_wiki=p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz);
if(czy_naglowek)then
local nazwa_rozdzialu,poziom_rozdzialu;
if(czy_naglowek_wiki)then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajNapisPoziomuWprowadzeniaTekstu(wiersz);
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajTekstHNumerNapisuWprowadzeniaTekstu(wiersz);
end;
nazwa_rozdzialu=frame:preprocess(nazwa_rozdzialu);
local nazwa_rozdzialu_aktualna=nazwa_rozdzialu;
nazwa_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](nazwa_rozdzialu);
nazwa_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(nazwa_rozdzialu);
nazwa_rozdzialu=html_modul.DecodeKoduHTMLZnaku(nazwa_rozdzialu);
local c=1;
for i=1,#tab_rozdzialy,1 do
if(tab_rozdzialy[i]==nazwa_rozdzialu)then
c=c+1;
end;
end;
if(c>1)then
nazwa_rozdzialu=nazwa_rozdzialu.."_"..c;
end;
table.insert(tab_rozdzialy,nazwa_rozdzialu);
if(id_rozdzialu==nazwa_rozdzialu)then
return nazwa_rozdzialu_aktualna;
end;
end;
end;
return nil;
end;
function p.NumerSekcjiStrony(frame)
local strona=frame.args[1];
local id_rozdzialu=frame.args[2] or "";
strona=frame:preprocess(strona);
local title=mw.title.makeTitle('',strona);
if((not title)or(not title.exists))then
return nil;
end;
local tekst=title:getContent();
if(not tekst)then return nil;end;
id_rozdzialu=frame:preprocess(id_rozdzialu);
local specjalne_modul=require("Module:Specjalne");
id_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](id_rozdzialu);
id_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(id_rozdzialu);
local html_modul=require("Module:Html");
id_rozdzialu=html_modul.DecodeKoduHTMLZnaku(id_rozdzialu);
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
--tekst=mw.ustring.gsub(tekst,"\n\n","\n\n");
tekst=p.WierszHNumer(tekst);
local szeregi_modul=require("Module:Szeregi");
local iter=szeregi_modul.IteratorLiniiTekstu(tekst);
local tab_rozdzialy={};
local ile=1;
for wiersz in iter do
local czy_naglowek,czy_naglowek_wiki=p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz);
if(czy_naglowek)then
local nazwa_rozdzialu,poziom_rozdzialu;
if(czy_naglowek_wiki)then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajNapisPoziomuWprowadzeniaTekstu(wiersz);
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajTekstHNumerNapisuWprowadzeniaTekstu(wiersz);
end;
nazwa_rozdzialu=frame:preprocess(nazwa_rozdzialu);
nazwa_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](nazwa_rozdzialu);
nazwa_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(nazwa_rozdzialu);
nazwa_rozdzialu=html_modul.DecodeKoduHTMLZnaku(nazwa_rozdzialu);
local c=1;
for i=1,#tab_rozdzialy,1 do
if(tab_rozdzialy[i]==nazwa_rozdzialu)then
c=c+1;
end;
end;
if(c>1)then
nazwa_rozdzialu=nazwa_rozdzialu.."_"..c;
end;
table.insert(tab_rozdzialy,nazwa_rozdzialu);
if(id_rozdzialu==nazwa_rozdzialu)then
return ile;
end;
ile=ile+1;
end
end;
return nil;
end;
function p.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2)
local frame=mw.getCurrentFrame();
local specjalne_modul=require("Module:Specjalne");
local html_modul=require("Module:Html");
id_rozdzialu1=frame:preprocess(id_rozdzialu1);
id_rozdzialu1=specjalne_modul["WydzielZwykłyTekst"](id_rozdzialu1);
id_rozdzialu1=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(id_rozdzialu1);
id_rozdzialu1=html_modul.DecodeKoduHTMLZnaku(id_rozdzialu1);
id_rozdzialu2=frame:preprocess(id_rozdzialu2);
id_rozdzialu2=specjalne_modul["WydzielZwykłyTekst"](id_rozdzialu2);
id_rozdzialu2=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(id_rozdzialu2);
id_rozdzialu2=html_modul.DecodeKoduHTMLZnaku(id_rozdzialu2);
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
--tekst=mw.ustring.gsub(tekst,"\n\n","\n\n");
tekst=p.WierszHNumer(tekst);
local szeregi_modul=require("Module:Szeregi");
local iter=szeregi_modul.IteratorLiniiTekstu(tekst);
local tab_rozdzialy={};
local str=""
local nazwa_rozdzialu_aktualna;
local poziom_rozdzialu_aktualny;
for wiersz in iter do
local czy_naglowek,czy_naglowek_wiki=p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz);
if(czy_naglowek)then
local nazwa_rozdzialu,poziom_rozdzialu;
if(czy_naglowek_wiki)then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajNapisPoziomuWprowadzeniaTekstu(wiersz);
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajTekstHNumerNapisuWprowadzeniaTekstu(wiersz);
end;
nazwa_rozdzialu=frame:preprocess(nazwa_rozdzialu);
nazwa_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](nazwa_rozdzialu);
nazwa_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(nazwa_rozdzialu);
nazwa_rozdzialu=html_modul.DecodeKoduHTMLZnaku(nazwa_rozdzialu);
local c=1;
for i=1,#tab_rozdzialy,1 do
if(tab_rozdzialy[i]==nazwa_rozdzialu)then
c=c+1;
end;
end;
if(c>1)then
nazwa_rozdzialu=nazwa_rozdzialu.."_"..c;
end;
table.insert(tab_rozdzialy,nazwa_rozdzialu);
if(((nazwa_rozdzialu_aktualna)and(nazwa_rozdzialu_aktualna==id_rozdzialu1))
and((((id_rozdzialu2=="")or(not id_rozdzialu2))and(poziom_rozdzialu<=poziom_rozdzialu_aktualny))or(nazwa_rozdzialu==id_rozdzialu2)))then
return str;
end;
if((id_rozdzialu1~="")and(nazwa_rozdzialu==id_rozdzialu1))then
nazwa_rozdzialu_aktualna=nazwa_rozdzialu;
poziom_rozdzialu_aktualny=poziom_rozdzialu;
str="";
elseif(id_rozdzialu1=="")then
nazwa_rozdzialu_aktualna="";
poziom_rozdzialu_aktualny=0;
if(id_rozdzialu2=="")then
return str;
elseif(nazwa_rozdzialu==id_rozdzialu2)then
return str;
else
str=(str~="")and (str.."\n"..wiersz) or wiersz;
end;
else
str=(str~="")and (str.."\n"..wiersz) or wiersz;
end;
else
str=(str~="")and (str.."\n"..wiersz) or wiersz;
end;
end;
if((id_rozdzialu1)and(id_rozdzialu1==""))then
return str;
elseif((nazwa_rozdzialu_aktualna)and(nazwa_rozdzialu_aktualna==id_rozdzialu1))then
return str;
end;
return "";
end;
function p.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-5];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy;
end;
end;
end;
local szablonowe_modul=require("Module:Szablonowe");
----
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local ktore=szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu[nazwa_szablonu];
if(not ktore)then return;end;
local tab=mw.text.split(tostring(ktore),"%s*;%s*",false);
local wynik="";
for _,num in pairs(tab)do
local numer_parametru=tonumber(num) or num;
for parametr,wartosc in pairs(tabela_parametrow_szablonu)do
if(parametr==numer_parametru)then
wynik=(wynik or "")..wartosc;
end;
end;
end;
return wynik;
end);
if((tablica_danych_parametrow_szablonu_strony)and(kod)and(wynik))then
if(not tablica_danych_parametrow_szablonu_strony[-5])then tablica_danych_parametrow_szablonu_strony[-5]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-5];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy=wynik;
end;
return wynik;
end;
function p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-6];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy;
end;
end;
end;
local szablonowe_modul=require("Module:Szablonowe");
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local szablony_z_dodatkiem_obiektowym=stronicowyparser_obiekty_modul.szablony_z_dodatkiem_obiektowym;
local dodatek=szablony_z_dodatkiem_obiektowym[nazwa_szablonu];
if(dodatek)then
local techniczne_modul=require("Module:Techniczne");
for name,value in pairs(tabela_parametrow_szablonu)do
local name=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](name);
local value=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](value);
dodatek=mw.ustring.gsub(dodatek,"%$%("..name.."%)",value);
end;
return dodatek;
end;
end);
if((tablica_danych_parametrow_szablonu_strony)and(kod)and(wynik))then
if(not tablica_danych_parametrow_szablonu_strony[-6])then tablica_danych_parametrow_szablonu_strony[-6]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-6];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy=wynik;
end;
return wynik;
end;
function p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_modul=require("Module:Techniczne");
tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
return "\n\n ";
end,nil,nil,
function(szablon,obiekt,kod,poziom_iteracji)
if(poziom_iteracji==0)then
if(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((nazwa=="br")or(nazwa=="hr"))then
return true;
end;
elseif(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
----
if((nazwa_szablonu=="Br")or(nazwa_szablonu=="Hr"))then
return true;
end;
end);
if(wynik)then return wynik;end;
end;
end;
return nil;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
return tekst;
end;
function p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_obiektow_strony_dany_modul_uzyskany,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)
local CzySpecjalnaLinia=function(linia)
local czy_specjalna_linia=mw.ustring.match(linia,"^[%*,;:#]+") or mw.ustring.match(linia,"^%s*$") or mw.ustring.match(linia,"^%-%-%-%-");
if(not czy_specjalna_linia)then
if(mw.ustring.match(linia,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$"))then
return true;
end;
end;
return czy_specjalna_linia;
end;
----
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_modul=require("Module:Techniczne");
local CzyLiniaZeSpecjalnymiSzablonami=function(linia)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local szablony_w_nie_w_tej_samej_linii=stronicowyparser_obiekty_modul.szablony_w_nie_w_tej_samej_linii;
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,pelna_nazwa_spisu_tresci,tablica_obiektow_strony_dany_modul_uzyskany);
for szablon,obiekt,kod in iterator do
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(szablony_w_nie_w_tej_samej_linii[nazwa_szablonu])then
return true;
end;
end);
if(wynik)then return wynik;end;
end;
end;
return nil;
end;
----
--tekst=p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,tablica_obiektow_strony_dany_modul_uzyskany,tablica_danych_parametrow_szablonu_strony);
----
local tab_linie_tekstu=mw.text.split(tekst,"\n");
if(#tab_linie_tekstu==0)then return "";end;
local tekst_nowy=tab_linie_tekstu[1];
local czy_linia_poprz=CzySpecjalnaLinia(tekst_nowy) or CzyLiniaZeSpecjalnymiSzablonami(tekst_nowy);
if(not czy_linia_poprz)then
tekst_nowy=p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst_nowy,pelna_nazwa_spisu_tresci,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;
for i=2,#tab_linie_tekstu,1 do
local linia=tab_linie_tekstu[i];
local aktualna_specjalna_linia=CzySpecjalnaLinia(linia) or CzyLiniaZeSpecjalnymiSzablonami(linia);
if(not aktualna_specjalna_linia)then
linia=p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(linia,pelna_nazwa_spisu_tresci,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;
if((not czy_linia_poprz)and(not aktualna_specjalna_linia))then
--local czy_wprowadzenie=mw.ustring.match(linia,"^>")
local tekst_nowy2=mw.ustring.match(tekst_nowy,"^(.*\n)[^%S\n]*\n[^%S\n]*$");
tekst_nowy=(tekst_nowy2 or tekst_nowy)..((tekst_nowy2) and "" or " ")..linia;
else
tekst_nowy=tekst_nowy.."\n"..linia;
end;
czy_linia_poprz=aktualna_specjalna_linia;
end;
return tekst_nowy;
end;
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_inne_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
local nazwy_modul=require("Module:Nazwy");
tablica_analizy_obiektow_strony_dany_modul=tablica_analizy_obiektow_strony_dany_modul or {};
tablica_danych_parametrow_szablonu_strony=tablica_danych_parametrow_szablonu_strony or {};
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local stronicowyparser_analizaaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local szablony_wprowadzenia_napisu_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy;
local szablonowe_modul=require("Module:Szablonowe");
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local html_modul=require("Module:Html");
local szeregi_modul=require("Module:Szeregi");
local szablony_do_usuwania_z_tekstu=stronicowyparser_obiekty_modul.szablony_do_usuwania_z_tekstu;
local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej=(nazwa_przestrzeni and nazwa_przestrzeni_ksiazki and nazwa_ksiazki and nazwa_spisu_tresci)
and nazwy_modul["NazwaModułu"](((nazwy_np_modul.Template~=nazwa_przestrzeni) and (nazwa_przestrzeni) or ""),nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci)
or nil;
local pelna_nazwa_spisu_tresci_szablonowa=((pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej)and(((nazwa_przestrzeni=="") and ":" or "")..pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej) or nil);
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;
local __FUNKCJA_OPERACJE_USUWANIE_BAZOWE=function(szablon,obiekt,kod,poziom_iteracji)
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil;
end;
--local tab_nazwa_spisow_przekierowaniowych={};
if(czy_dalej_rozwazac_zakodowane)then
----
local szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu=stronicowyparser_obiekty_modul.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu;
local tab_szablony_bez_generowania_napisowego=stronicowyparser_obiekty_modul.szablony_bez_generowania_napisowego;
local szablony_nie_typowo_linkowe=stronicowyparser_obiekty_modul.szablony_nie_typowo_linkowe;
local znaczniki_szablonowe=stronicowyparser_obiekty_modul.znaczniki_szablonowe;
local szablony_sztucznego_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_sztucznego_wprowadzenia_tekstu;
----
local function UsuwanieNowychLiniiZnacznikowe(szablon)
local tak=nil;
szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
-----
if((nazwa_szablonu=="Br")or(nazwa_szablonu=="Hr"))then
if(poziom_iteracji==0)then tak=true;end;
return " ";
end;
end);
if(wynik)then return wynik,nil,true;end;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((nazwa=="br")or(nazwa=="hr"))then
if(poziom_iteracji==0)then tak=true;end;
return " ",nil,true;
end;
end;
return nil,true;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
return szablon,tak;
end;
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)
local czy_tak=false;
local szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(czy_ce)then
local szablon_spis_tresci_zawartosc=tabela_parametrow_szablonu[czy_ce];
if(szablon_spis_tresci_zawartosc)then
czy_tak=czy_tak or true;
return szablon_spis_tresci_zawartosc;
end;
end;
return nil;
end);
if(wynik)then return wynik,nil,true;end;
return nil,true;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
czy_tak=czy_tak or true;
return zawartosc,nil,true;
end;
end;
end;
return nil,true;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
return szablon,czy_tak;
end;
local Modyfikacja=function(szablon,obiekt,kod)
local czy_tak=false;
local szablon,czy_tak1=UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu(szablon,obiekt,kod);
czy_tak=czy_tak or czy_tak1;
local szablon,czy_tak2=UsuwanieNowychLiniiZnacznikowe(szablon);
czy_tak=czy_tak or czy_tak2;
local szablon,ile=mw.ustring.gsub(szablon,"\n"," ");
czy_tak=czy_tak or (ile>0);
return szablon,czy_tak;
end;
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)
if(obiekt=="SZABLON")then
local tabela_parametrow_szablonu=parametr1;
local nazwa_szablonu=parametr2;
local tabela_modyfikatorow=parametr3;
if(szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu])then
local wynik,czy_tak=Modyfikacja(szablon,obiekt,kod);
if(not czy_tak)then return nil,true;end;
return wynik,true;
end;
elseif(obiekt=="ZNACZNIK")then
local nazwa=parametr1;
local zawartosc=parametr2;
local tab_atrybuty=parametr3;
if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
local wynik,czy_tak=Modyfikacja(szablon,obiekt,kod);
if(not czy_tak)then return nil,true;end;
return wynik,true;
end;
end;
end;
----
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
---
--local tab_nazwa_spisow_przekierowaniowych={};
---
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)
local spacja=" ";
local tab_spacja={
["nbsp"]=spacja,
["#32"]=spacja,
["#x20"]=spacja,
};
komorka=mw.ustring.gsub(komorka,"&([^&;]+);",tab_spacja);
local komorka_stara=komorka;
if(not nie_trimowanie)then
komorka=mw.text.trim(komorka);
end;
if(mw.ustring.match(komorka_stara,"^%s*[#%*:;>]"))then komorka=" "..komorka;end;
return ((not nie_trimowanie)and ("\n\n"..komorka.."\n") or komorka);
end;
----
local function ZamienNaKody(zawartosc,czy_szablon)
local function Linie(wzor)
zawartosc=mw.ustring.gsub(zawartosc,wzor,function(a,b)
return "&#"..mw.ustring.byte(a)..";"..(b or "");
end);
end;
if(not (mw.ustring.sub(zawartosc,1,1)=="\n"))then
Linie("^([=%*#:;])");
end;
local len=mw.ustring.len(zawartosc);
if(not (mw.ustring.sub(zawartosc,len,len)=="\n"))then
Linie("([=])([^%S\n]*)$");
end;
return zawartosc;
end;
tekst_rozwiniety_calego_artykulu=szablonowe_modul:KodowanieNiezakodowanychNormKodowychReferencjiTekstu(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,false,function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)
if(obiekt=="SZABLON")then
local tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=parametr1,parametr2,parametr3;
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local numer_parametru=szablony_sztucznego_wprowadzenia_tekstu[nazwa_szablonu];
if(numer_parametru)then
local parametr=tabela_parametrow_szablonu[numer_parametru];
if(parametr)then
local czy_modyfikacja=false;
szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa=="div")then
if(p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego(parametr,zawartosc,obiekt,kod))then
czy_modyfikacja=true;
return zawartosc and ZamienNaKody(PrzetwarzanieZnacznikowe(zawartosc,true),false) or "";
end;
end;
end;
return nil,true;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
if(czy_modyfikacja)then
return szablon;
end;
end;
end;
local function AnalizaSzablonu(szablon)
local wynik=p.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
if(wynik)then return wynik;end;
if(szablony_do_usuwania_z_tekstu[nazwa_szablonu])then return "";end;
local czy_szablony_bez_generowania_napisowego=tab_szablony_bez_generowania_napisowego[nazwa_szablonu];
if(czy_szablony_bez_generowania_napisowego)then return "";end;
if(szablony_nie_typowo_linkowe[nazwa_szablonu])then return "";end;
--if(mw.ustring.match(nazwa_szablonu,"/"))then return "";end;
end;
local szablon2=AnalizaSzablonu(szablon);
if(szablon2)then return szablon2;end;
local czy_center;
szablon,czy_center=UsuwanieZnacznikowe(szablon2 or szablon,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) or szablon2;
if(szablon)then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=nil;
end;
end;
local wynik,tabela_parametrow_szablonu=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local szablon_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(szablon_ce)then
local zawartosc=tabela_parametrow_szablonu[szablon_ce];
if((zawartosc)and(p.CzyJestNapisWprowadzeniaTekstu(zawartosc) or p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)))then
return zawartosc,tabela_parametrow_szablonu;
end;
end;
return nil,tabela_parametrow_szablonu;
end);
if(wynik)then return wynik;end;
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
return nil;
elseif(czy_center)then
local szablon_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(szablon_ce)then
local zawartosc=tabela_parametrow_szablonu[szablon_ce];
if((zawartosc)and(p.CzyJestNapisWprowadzeniaTekstu(zawartosc) or p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)))then
return zawartosc;
else
return nil;
end;
else
return nil;
end;
end;
local znacznik_numer=znaczniki_szablonowe[nazwa_szablonu];
if(znacznik_numer)then
local parametr=tabela_parametrow_szablonu[znacznik_numer];
if(parametr)then
return ZamienNaKody(parametr,true);
end;
end;
end;
local wynik=FuncSzablon(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow);
if(wynik)then return wynik,nil,true;end;
return nil,true;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,atrybuty=parametr1,parametr2,parametr3;
if((nazwa~="center")and(not znaczniki_wprowadzenia_tekstu[nazwa]))then
if((nazwa~="ref")and(nazwa~="br")and(nazwa~="hr"))then
local fun=function()
if(nazwa~="div")then
return zawartosc and ZamienNaKody(PrzetwarzanieZnacznikowe(zawartosc,true),false) or "";
elseif((zawartosc)and(zawartosc~=""))then
if(not p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego(tekst,zawartosc,obiekt,kod))then
local ile1;local ile2;
zawartosc,ile1=mw.ustring.gsub(zawartosc,"^([^\n]+\n)",function(s)
if(not mw.ustring.match(s,"^%s*$"))then return PrzetwarzanieZnacznikowe(s,true).."\n\n";end;
return "\n";
end);
zawartosc,ile2=mw.ustring.gsub(zawartosc,"([^\n]+)$",function(s)
if(not mw.ustring.match(s,"^%s*$"))then return "\n\n"..s;end;
return "";
end);
return ZamienNaKody(zawartosc,false);
else
return zawartosc and ZamienNaKody(PrzetwarzanieZnacznikowe(zawartosc,true),false) or "";
end;
else
return "";
end;
end;
return fun,nil,true;
end;
else
if((zawartosc)and(p.CzyJestNapisWprowadzeniaTekstu(zawartosc) or p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)))then
return zawartosc,nil,true;
end;
local szablon,czy_center=UsuwanieZnacznikowe(szablon,obiekt,kod,nazwa,zawartosc,atrybuty);
if(szablon)then
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[100];
if(tablica_danych_parametrow_szablonu_strony_numer)then
tablica_danych_parametrow_szablonu_strony_numer[kod]=nil;
end;
end;
end;
return nil,true;
elseif(obiekt=="INNEPRE")then
if(mw.ustring.match(szablon,"^%s*$"))then
return "",nil,true;
end;
return nil,true;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
local tak=false;
szablon=szablonowe_modul:KodowanieNiezakodowanychNormKodowychReferencjiTekstu(szablon,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,false,function(szablon,obiekt,kod,parametr1,parametr2,parametr3)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if((nazwa_szablonu=="Br")or(nazwa_szablonu=="Hr"))then
return " ";
else
local nazwa_zmiennej=znaczniki_szablonowe[nazwa_szablonu];
if(nazwa_zmiennej)then
local zawartosc=tabela_parametrow_szablonu[nazwa_zmiennej];
return zawartosc or " ";
end;
end;
end);
if(wynik)then return wynik,nil,true;end;
elseif(obiekt=="ZNACZNIK")then
tak=true;
local nazwa,zawartosc,atrybuty=parametr1,parametr2,parametr3;
if((nazwa=="br")or(nazwa=="hr"))then
return " ",nil,true;
else
return zawartosc or "",nil,true;
end;
end;
return nil,true;
end);
if(tak)then
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
end;
local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik=stronicowyparser_analizaaspisurzeczy_modul.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true);
if(not czy_element_spisu)then return "",nil,true;end;
elseif(obiekt=="WIKITABELA")then
szablon=mw.ustring.match(szablon,"^{|(.-)|}$");
szablon=mw.ustring.gsub(szablon,"^[^\n]+","");
--szablon=mw.ustring.gsub(szablon,"[|!][|!]","\n\n");
szablon=mw.ustring.gsub(szablon,"\n|[%-%+]?[^%S\n]*[^|\n]*|([^|\n]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end);
szablon=mw.ustring.gsub(szablon,"\n|%-([^|\n]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end);
szablon=mw.ustring.gsub(szablon,"\n|%-[^%S\n|]*","\n\n");
szablon=mw.ustring.gsub(szablon,"||([^|\n]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end)
szablon=mw.ustring.gsub(szablon,"\n|%+[^%S\n]*([^\n]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end);
szablon=mw.ustring.gsub(szablon,"\n|([^\n|]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end);
return szablon,nil,true;
end;
return nil,true;
end,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)
tekst_rozwiniety_calego_artykulu=szeregi_modul.ZamianaZnakowaLinii(tekst_rozwiniety_calego_artykulu,function(linia)
local linia_nie_nil=mw.ustring.match(linia,wzor);
if(linia_nie_nil)then
local tak=nil;
local linia_tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(linia_nie_nil,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if((nazwa_szablonu=="Br")or(nazwa_szablonu=="Hr"))then
tak=true;
return " ";
end;
local szablon_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(szablon_ce)then
local tekst=tabela_parametrow_szablonu[szablon_ce];
if(tekst)then
tak=true;
return tekst;
end;
end;
end);
if(wynik)then return wynik,nil,true;end;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((nazwa=="br")or(nazwa=="hr"))then
tak=true;
return " ",nil,true;
elseif((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
tak=true;
return zawartosc or "",nil,true;
end;
elseif(obiekt=="PRE")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
zawartosc=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
if(czy_dodatni_rozdzial)then
local zawartosc=mw.ustring.gsub(zawartosc,"\n"," ");
tak=true;
return zawartosc,nil,true;
else
tak=true;
return zawartosc,nil,true;
end;
else
tak=true;
return "",nil,true;
end;
elseif(obiekt=="ŹRÓDŁO")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
zawartosc=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
if(czy_dodatni_rozdzial)then
local zawartosc=mw.ustring.gsub(zawartosc,"\n"," ");
tak=true;
return zawartosc,nil,true;
else
tak=true;
return zawartosc,nil,true;
end;
else
tak=true;
return "",nil,true;
end;
elseif(obiekt=="NOWIKI")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
zawartosc=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
local zawartosc=mw.ustring.gsub(zawartosc,"\n"," ");
tak=true;
return zawartosc,nil,true;
else
tak=true;
return "",nil,true;
end;
end;
return nil,true;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
return linia_tekst;
else
return nil;
end;
end);
end;
-----
LiniaRozdzialyDodatnieOrazUjemne("^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$",true);
LiniaRozdzialyDodatnieOrazUjemne("^([%*#;:]+[^\n]*)$",false);
tekst_rozwiniety_calego_artykulu=szablonowe_modul:ModyfikowanieKodowoSzablonoweZakodowanegoTekstu(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,
function(szablon,obiekt,kod,poziom_iteracji,szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica)
if(obiekt=="SZABLON")then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu])then
return "\n\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod).."\n\n ";
else
local numer_parametru=szablony_sztucznego_wprowadzenia_tekstu[nazwa_szablonu];
if(numer_parametru)then
local parametr=tabela_parametrow_szablonu[numer_parametru];
if(parametr)then
local naglowek=p.NapisWprowadzeniaTekstuHNumer(parametr);
if(naglowek)then
local obiekt_hnumer="ZNACZNIK";
local kod_hnumer=(#(tablica_analizy_obiektow_strony_dany_modul[obiekt_hnumer] or {}))+1;
return "\n\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt_hnumer,kod_hnumer).."\n\n ",naglowek,obiekt_hnumer,kod_hnumer;
end;
end;
end;
end;
end);
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
return "\n\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod).."\n\n ";
end;
elseif(obiekt=="INNEPRE")then
return "\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod).."\n";
elseif((obiekt=="PRE")or(obiekt=="ŹRÓDŁO")or(obiekt=="GALERIA")or(obiekt=="MAPAOBRAZU")or(obiekt=="PUDEŁKOWEJŚCIA"))then
return "\n\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod).."\n\n ";
end;
end,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
-----
end;
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"<!%-%-.-%-%->","");
local tab_magiczne_derektywy=stronicowyparser_obiekty_modul.magiczne_derektywy;
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"__(%u+)__",function(derektywy)
return tab_magiczne_derektywy[derektywy] and "" or nil;
end);
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"^(%-%-%-%-+)[^%S\n]*([^\n]+)","%1\n %2");
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"\n(%-%-%-%-+)[^%S\n]*([^\n]+)","\n%1\n %2");
--tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"\n\n","\n\n");
if(czy_dalej_rozwazac_zakodowane)then
----
tekst_rozwiniety_calego_artykulu=p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE);
tekst_rozwiniety_calego_artykulu=__FUNKCJA_ANALIZA_SPISU and __FUNKCJA_ANALIZA_SPISU(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or tekst_rozwiniety_calego_artykulu;
end;
--mw.log( tekst_rozwiniety_calego_artykulu)
--local iter_main=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"\n([^\n]*)\n");
local iter_main=szeregi_modul.IteratorLiniiTekstu(tekst_rozwiniety_calego_artykulu);
local naglowek_aktualnego_rozdzialu;
local linia_naglowka_aktualnego_rozdzialu;
local poziom_aktualnego_rozdzialu;
local poczatek_aktualnego_rozdzialu;
local numeracja_aktualnego_rozdzialu;
local czy_rozdzial_aktualny_centrowany;
local czy_koniec=false;
----
local odczyt_jakie_spisy_tresci=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu;
local jakie_spisy_tresci=parametry_modul["KopiujTabelęElementów"](odczyt_jakie_spisy_tresci);
setmetatable(jakie_spisy_tresci,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local czy_ce_spis_tresci=nil;
----
local czy_w_spisie_tresci=((not czy_inne_rozdzialy_analizowac)and true or nil);
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local parser=p.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
-----
local tak_ce_spis_tresci=nil;
local m=0;
local function Wystepowanie(linia,funkcja1,funkcja2)
local czy_znaleziono_okladka=false;
local function RozwazajLinie(szablon,obiekt,kod)
if(szablon)then
local tab_2,numer_rodzaju_artykulu,id,parametry,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,p.__FUNKCJA_KOMPLETOWANIA);
if(not kom)then
local tab=((tab_2 and tab_2[1]) and tab_2 or nil);
if(tab)then
local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab[1],false);
local czy_okladka=mw.ustring.match(artykul,stronicowyparser_obiekty_modul.artykularne_niespisowe[1]);
if((artykul~="")and((numer_rodzaju_artykulu~=1)or((numer_rodzaju_artykulu==1)and(not czy_okladka))))then
return 1;
elseif(czy_okladka)then
czy_znaleziono_okladka=true;
end;
end;
else
return 0;
end;
end;
end;
local function RozwazajLinieZnacznikowe(zawartosc)
local wartosc;
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(zawartosc,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst)
local function CenterZnacznikLinia(szablon,obiekt,kod)
wartosc=RozwazajLinie(szablon,obiekt,kod);
if(not wartosc)then return;end;
if(wartosc==1)then return nil;end;
return szablon,tekst;
end;
if(obiekt=="SZABLON")then
local szablon,tekst=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local szablon,tekst=CenterZnacznikLinia(szablon,obiekt,kod);
return szablon,tekst;
end);
return szablon,tekst;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
local szablon,tekst=CenterZnacznikLinia(szablon,obiekt,kod);
return szablon,tekst;
end;
end);
for szablon,obiekt,kod in iter do end;
return wartosc;
end;
local szablon_spis_tresci;
local function spis_tresci(wystepowanie_linkow,hn_number)
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(wystepowanie_linkow,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iter do
local function Spis(szablon,obiekt,kod)
local tab_2,numer_rodzaju_artykulu,id,parametry,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,p.__FUNKCJA_KOMPLETOWANIA);
if(not kom)then
local tab=((tab_2 and tab_2[1]) and tab_2 or nil);
if((tab)and(numer_rodzaju_artykulu==1)and(stronicowyparser_analizaaspisurzeczy_modul.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab[1],false))))then
tak_ce_spis_tresci=hn_number;
szablon_spis_tresci=wystepowanie_linkow;
return 1;
end;
else
return 0;
end;
end;
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local wynik=Spis(szablon,obiekt,kod);
if(wynik)then return wynik;end;
end);
if(wynik)then return wynik;end;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
local wynik=Spis(szablon,obiekt,kod);
if(wynik)then return wynik;end;
end;
end;
wystepowanie_linkow=czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(wystepowanie_linkow,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul) or wystepowanie_linkow;
wystepowanie_linkow=mw.text.trim(wystepowanie_linkow);
local czy_ce=jakie_spisy_tresci[wystepowanie_linkow];
if(czy_ce)then
tak_ce_spis_tresci=hn_number;
szablon_spis_tresci=wystepowanie_linkow;
return 1;
end;
end;
local wystepowanie_linkow=mw.ustring.match(linia,"^[#:%*;%d%.>]+%s*(.+)$") or mw.ustring.match(linia,"^(%S+%s*.+)$");
local tak=nil;
if(czy_dalej_rozwazac_zakodowane)then
if(wystepowanie_linkow)then
local czy_rozdzial=nil;local wartosc=nil;
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(wystepowanie_linkow,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst)
local czy_linkw=(obiekt=="LINKW");local czy_linkz=(obiekt=="LINKZ");local czy_szablon=(obiekt=="SZABLON");local czy_znacznik=(obiekt=="ZNACZNIK");
if(czy_linkw or czy_linkz or czy_szablon or czy_znacznik)then
local podrecznik=nil;
if(czy_szablon)then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
-----
local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(czy_ce)then
local szablon_spis_tresci_zawartosc=tabela_parametrow_szablonu[czy_ce];
if(szablon_spis_tresci_zawartosc)then
szablon_spis_tresci_zawartosc=mw.ustring.match(szablon_spis_tresci_zawartosc,"^'*%s*(.-)%s*'*$");
wartosc=spis_tresci(szablon_spis_tresci_zawartosc,true);
else
wartosc=RozwazajLinie(szablon,obiekt,kod);
end;
else
wartosc=RozwazajLinie(szablon,obiekt,kod);
if(wartosc)then podrecznik=true;else podrecznik=false;end;
end;
end);
elseif(czy_znacznik)then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
if(nazwa=="center")then
szablon_spis_tresci=mw.ustring.match(zawartosc,"^'*%s*(.-)%s*'*$");
wartosc=spis_tresci(szablon_spis_tresci,true);
elseif(znaczniki_wprowadzenia_tekstu[nazwa])then
szablon_spis_tresci=mw.ustring.match(zawartosc,"^'*%s*(.-)%s*'*$");
local hn_number=p.HnNumerWprowadzeniaTekstu(nazwa,atrybuty)
wartosc=spis_tresci(szablon_spis_tresci,hn_number);
else
wartosc=RozwazajLinieZnacznikowe(zawartosc);
end;
end;
else
wartosc=RozwazajLinie(szablon,obiekt,kod);
if(wartosc)then podrecznik=true;else podrecznik=false;end;
end;
if(podrecznik==true)then
if(not czy_rozdzial)then
if(wartosc==1)then
local wystepowanie_linku_lub_szablonu=(mw.ustring.match(tekst,"^'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)))
and(not mw.ustring.match(tekst,"^'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."%s*>"))
and (mw.ustring.match(tekst,"^[^%.]*%s*$"));
if(not wystepowanie_linku_lub_szablonu)then return nil;end;
czy_rozdzial=true;
elseif(wartosc==0)then
local ile;
tekst,ile=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod),"");
return "", ((ile>0) and tekst or nil);
end;
end;
elseif(podrecznik==false)then
if(not wartosc)then
if(czy_znaleziono_okladka)then
local czy_nie_uwzgledniac_linii=mw.ustring.match(tekst,"[%s%p]*<[%s<]-%s*'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod));
if(not czy_nie_uwzgledniac_linii)then
local tekst,ile=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod),"");
return "", ((ile>0) and tekst or nil);
else
czy_znaleziono_okladka=false;
end;
else
local tekst,ile=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod),"");
return "", ((ile>0) and tekst or nil);
end;
end;
end;
if(not wartosc)then return;end;
tak=tak or (wartosc==1);
if(tak)then return;end;
return szablon,tekst;
else
local tekst,ile=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod),"");
return "", ((ile>0) and tekst or nil);
end;
end);
for szablon,obiekt,kod in iter do end;
end;
end;
if(tak)then
funkcja1(szablon_spis_tresci);
else
funkcja2();
end;
end
return function()
local tab_str={};
local linia;
local function IterMain()
for linia in iter_main do
local nazwa_rozdzialu;local poziom_rozdzialu;local poczatek_rozdzialu;local numeracja_rozdzialu;local czy_rozdzial_centrowany;
---------------------------------------
nazwa_rozdzialu=mw.ustring.match(linia,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$");
if(nazwa_rozdzialu) then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajNapisPoziomuWprowadzeniaTekstu(nazwa_rozdzialu);
end;
if(not nazwa_rozdzialu)then
if(czy_inne_rozdzialy_analizowac)then
if(not czy_w_spisie_tresci)then
Wystepowanie(linia,function(szablon_spis_tresci)
if(not tak_ce_spis_tresci)then
nazwa_rozdzialu="Spis treści";
poziom_rozdzialu=nil;
table.insert(tab_str,linia);
else
if(szablon_spis_tresci)then
local numeracja,rozdzial=p.NumeracjaOrazTekstWprowadzeniaTekstu(szablon_spis_tresci);
if((numeracja)and(rozdzial))then
numeracja_rozdzialu=numeracja;
nazwa_rozdzialu=rozdzial;
else
nazwa_rozdzialu=szablon_spis_tresci;
numeracja_rozdzialu=nil;
end;
else
nazwa_rozdzialu="Spis treści";
numeracja_rozdzialu=nil;
end;
local czy_rozdzial_naglowka_hn=tonumber(tak_ce_spis_tresci);
poziom_rozdzialu=czy_rozdzial_naglowka_hn or 2;
czy_rozdzial_centrowany=(not czy_rozdzial_naglowka_hn)and true or false;
poczatek_rozdzialu=nil;
--str="";
end;
end,function()
nazwa_rozdzialu=nil;
end);
end;
if(not nazwa_rozdzialu)then
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
end;
else
nazwa_rozdzialu=nil;
end;
end;
if(nazwa_rozdzialu)then
czy_w_spisie_tresci=true;
if(not naglowek_aktualnego_rozdzialu)then
naglowek_aktualnego_rozdzialu=nazwa_rozdzialu;
linia_naglowka_aktualnego_rozdzialu=linia;
poziom_aktualnego_rozdzialu=poziom_rozdzialu;
poczatek_aktualnego_rozdzialu=poczatek_rozdzialu;
numeracja_aktualnego_rozdzialu=numeracja_rozdzialu;
czy_rozdzial_aktualny_centrowany=czy_rozdzial_centrowany;
else
----------------------------------------------
local naglowek_posredni_aktualnego_rozdzialu=naglowek_aktualnego_rozdzialu;
local linia_naglowka_posredni_aktualnego_rozdzialu=linia_naglowka_aktualnego_rozdzialu;
local poziom_posredni_aktualnego_rozdzialu=poziom_aktualnego_rozdzialu;
local poczatek_posredni_aktualnego_rozdzialu=poczatek_aktualnego_rozdzialu;
local numeracja_posredni_aktualnego_rozdzialu=numeracja_aktualnego_rozdzialu;
local czy_rozdzial_posredni_centrowany=czy_rozdzial_aktualny_centrowany;
----------------------------------------------
naglowek_aktualnego_rozdzialu=nazwa_rozdzialu;
linia_naglowka_aktualnego_rozdzialu=linia;
poziom_aktualnego_rozdzialu=poziom_rozdzialu;
poczatek_aktualnego_rozdzialu=poczatek_rozdzialu;
numeracja_aktualnego_rozdzialu=numeracja_rozdzialu;
czy_rozdzial_aktualny_centrowany=czy_rozdzial_centrowany;
local str=table.concat(tab_str,"\n");
if(not __FUNKCJA2)then
naglowek_posredni_aktualnego_rozdzialu=naglowek_posredni_aktualnego_rozdzialu
and (czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(naglowek_posredni_aktualnego_rozdzialu,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul)
or naglowek_posredni_aktualnego_rozdzialu
)
or nil;
str=str and (czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(str,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul) or str) or nil;
elseif(czy_dalej_rozwazac_zakodowane)then
naglowek_posredni_aktualnego_rozdzialu=naglowek_posredni_aktualnego_rozdzialu and __FUNKCJA2(naglowek_posredni_aktualnego_rozdzialu,nil,tablica_analizy_obiektow_strony_dany_modul,true) or nil;
str=str and __FUNKCJA2(str,nil,tablica_analizy_obiektow_strony_dany_modul,false) or nil;
end;
--linia_poprz=nil;
m=m+1;
return {naglowek_posredni_aktualnego_rozdzialu,linia_naglowka_posredni_aktualnego_rozdzialu,},str,poziom_posredni_aktualnego_rozdzialu,poczatek_posredni_aktualnego_rozdzialu,numeracja_posredni_aktualnego_rozdzialu,czy_rozdzial_posredni_centrowany;
end;
else
if(naglowek_aktualnego_rozdzialu)then
table.insert(tab_str,linia);
end;
--linia_poprz=linia;
end;
end;
if(czy_koniec)then return nil;end;
czy_koniec=true;
---
local str=table.concat(tab_str,"\n");
--
if(not __FUNKCJA2)then
naglowek_aktualnego_rozdzialu=naglowek_aktualnego_rozdzialu
and (czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(naglowek_aktualnego_rozdzialu,nil,tablica_analizy_obiektow_strony_dany_modul)
or naglowek_aktualnego_rozdzialu
)
or nil;
str=str and (czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(str,nil,tablica_analizy_obiektow_strony_dany_modul) or str) or nil;
elseif(czy_dalej_rozwazac_zakodowane)then
naglowek_aktualnego_rozdzialu=naglowek_aktualnego_rozdzialu and __FUNKCJA2(naglowek_aktualnego_rozdzialu,nil,tablica_analizy_obiektow_strony_dany_modul,true) or nil;
str=str and __FUNKCJA2(str,nil,tablica_analizy_obiektow_strony_dany_modul,false) or nil;
end;
--linia_nast=nil;linia_poprz=nil;
m=m+1;
return (naglowek_aktualnego_rozdzialu and {naglowek_aktualnego_rozdzialu,linia_naglowka_aktualnego_rozdzialu,} or nil),str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end;
----
local naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany=IterMain();
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
return p;
pct1dou3pm29ojkk6a16xsqnousxphr
557985
557982
2026-09-29T10:58:08Z
Persino
2851
557985
Scribunto
text/plain
local p={};
function p.NapisWprowadzeniaTekstu(rozdzial,poziom,id)
local naglowek;
poziom=poziom or 1;
poziom=(poziom>0)and poziom or 1;
if(poziom<=6)then
local str_poziom=mw.ustring.rep("=",poziom);
naglowek="\n"..str_poziom..rozdzial..str_poziom.."\n";
else
naglowek="\n<h6 "..(id and ("id=\""..id.."\"") or "").." class=\"mw-hnumber mw-hnumber-"..poziom.."\">"..rozdzial.."</h6>\n";
end;
return naglowek;
end;
function p.NapisWprowadzeniaTekstuHn(rozdzial,poziom,tab_atrybuty)
local naglowek;
poziom=poziom or 1;
poziom=(poziom>0)and poziom or 1;
local atrybuty_wikikod;
if(tab_atrybuty)then
for name,value in pairs(tab_atrybuty)do
value=mw.ustring.gsub(value,"\"","\\\"");
local element=name.."=\""..((name=="class") and ((poziom > 6)and ("mw-hnumber mw-hnumber-"..poziom.." ") or ("mw-hnumber ")) or "")..value.."\"";
atrybuty_wikikod=(atrybuty_wikikod or "")..(atrybuty_wikikod and " " or "")..element;
end;
end;
if(poziom<=6)then
local str_poziom=mw.ustring.rep("=",poziom);
naglowek="\n<h"..poziom.." "..(atrybuty_wikikod or "")..">"..rozdzial.."</h"..poziom..">\n";
else
naglowek="\n<h6 "..(atrybuty_wikikod or "")..">"..rozdzial.."</h6>\n";
end;
return naglowek;
end;
function p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego(tekst,zawartosc,obiekt,kod)
if(mw.ustring.match(zawartosc,"\n"))then return false;end;
local szablonowe_modul=require("Module:Szablonowe");
local kod_norma_wzoru_obiektu=szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod);
tekst='\n'..tekst..'\n';
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;
return false;
end;
function p.NapisWprowadzeniaTekstuHNumer(parametr)
local naglowek,poziom=p.PodajNapisPoziomuWprowadzeniaTekstu(parametr);
if(not naglowek)then return nil;end;
if(poziom<=6)then
return "<h"..poziom..">"..naglowek.."</h"..poziom..">";
else
return "<h6 class=\"mw-hnumber mw-hnumber-"..poziom.."\">"..naglowek.."</h6>";
end;
end;
function p.PodajNapisPoziomuWprowadzeniaTekstu(linia)
if(mw.ustring.match(linia,"^%s*=*%s*$"))then
return nil,0;
end;
local rowna_lewy=mw.ustring.match(linia,"^(=+)");
local rowna_prawy=mw.ustring.match(linia,"(=+)%s*$");
if((rowna_lewy)and(rowna_prawy))then
local min_rowna=math.min(#rowna_lewy,#rowna_prawy);
local str_min_rowna=mw.ustring.rep("=",min_rowna);
local naglowek=mw.ustring.match(linia,"^%s*"..str_min_rowna.."([^\n]*[^\n%=][^\n]*)"..str_min_rowna.."%s*$");
if(not naglowek)then
return nil,0;
end;
local naglowek=mw.text.trim(naglowek);
return naglowek,min_rowna;
else
return nil,0;
end;
end;
function p.PodajTekstHNumerNapisuWprowadzeniaTekstu(linia)
local liczba1,zawartosc,liczba2=mw.ustring.match(linia,"<[Hh](%d+)[^<>]*>(.-)</[Hh](%d+)>");
if(not liczba1)then return nil;end;
if((#liczba1==1)and(#liczba2==1)and(liczba1==liczba2))then
local liczba1=tonumber(liczba1);
if(not liczba1)then return nil;end;
if((liczba1<1)or(liczba1>6))then return nil;end;
return zawartosc,liczba1;
end;
return nil;
end;
function p.CzyJestNapisWprowadzeniaTekstu(zawartosc)
return mw.ustring.match(zawartosc,"^=+[^\n]*[^=\n]+[^\n]*=+[^%S\n]*\n")
or mw.ustring.match(zawartosc,"\n=+[^\n]*[^=\n]+[^\n]*=+[^%S\n]*\n")
or mw.ustring.match(zawartosc,"\n=+[^\n]*[^=\n]+[^\n]*=+[^%S\n]*$")
or mw.ustring.match(zawartosc,"^=+[^\n]*[^=\n]+[^\n]*=+[^%S\n]*$");
end;
function p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)
return mw.ustring.match(zawartosc,"^[;%*:#]+")
or mw.ustring.match(zawartosc,"\n[;%*:#]+");
end;
function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)
local czy_naglowek=p.CzyJestNapisWprowadzeniaTekstu(wiersz);
if(czy_naglowek)then return true,true;end;
--czy_naglowek=mw.ustring.match(wiersz,"<[Hh]%d+[^<>]*>(.+)</[Hh]%d+>");
local czy_naglowek=p.PodajTekstHNumerNapisuWprowadzeniaTekstu(wiersz) and true or false;
return czy_naglowek,false;
end;
function p.WierszHNumer(tekst)
local tekst=mw.ustring.gsub(tekst,"(<[Hh](%d+)[^<>]*>)(.-)(</[Hh]%2%s*>)",function(lewy,poziom,tekst,prawy)
poziom=tonumber(poziom) or 0;
if((poziom>=1)and(poziom<=6))then
tekst=mw.ustring.gsub(tekst,"\n"," ");
return "\n"..lewy..tekst..prawy.."\n";
end;
end);
return tekst;
end;
function p.CzyJestJakikolwiekLinkArtykularnyTekstu(tekst,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
-----
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy;
local inne_linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy;
-----
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
-----
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iter do
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if((linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod)))then
return true;
end;
end);
if(wynik)then return wynik;end;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
return true;
--elseif((obiekt=="MATH")or(obiekt=="ŹRÓDŁO"))then
--return true;
end;
end;
return false;
end;
function p.CzyJestInnySpecjalnyTekstowyObiekt(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul)
local szablonowe_modul=require("Module:Szablonowe");
-----
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iter do
if((obiekt=="INNEPRE")or(obiekt=="PRE")or(obiekt=="ŹRÓDŁO")or(obiekt=="MATH")or(obiekt=="GALERIA")or(obiekt=="MAPAOBRAZU"))then
return true;
end;
end;
return false;
end;
function p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja)
local czy=mw.ustring.match(rozdzial_z_numeracja,"^[%d%.]+%s+") or mw.ustring.match(rozdzial_z_numeracja,"^[%d%.]+%s*$");
if(czy)then
local num=mw.ustring.match(rozdzial_z_numeracja,"^([%d%.]+)");
local tab=mw.text.split(num,"%.",false);
if(#tab==1)then
if(mw.ustring.match(num,"^%d+$"))then
return rozdzial_z_numeracja,"";
end;
else
if(tab[#tab]=="")then tab[#tab]=nil;end;
end;
local tak=true;
for i=1,#tab,1 do
tak=tak and mw.ustring.match(tab[i],"^%d+$");
if(not tak)then break;end;
end;
if(tak)then
local numeracja=mw.ustring.match(rozdzial_z_numeracja,"^([%d%.]+)%s*");
local rozdzial_bez_numeracji=mw.ustring.gsub(rozdzial_z_numeracja,"^[%d%.]+%s*","");
return rozdzial_bez_numeracji,numeracja;
end;
end;
return rozdzial_z_numeracja,"";
end;
function p.__FUNKCJA_KOMPLETOWANIA(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local tab_kom=stronicowyparser_obiekty_modul.szablony_kompletowania_stron_woluminu;
return tab_kom[nazwa_szablonu];
end;
function p.UruchamianieAnalizatoraSpisuRzeczyStrony()
return true;
end;
function p.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local rozdzial=mw.ustring.match(linia,"^('+..-:[%s_]-'*)[%s_]*$") or ((not mw.ustring.match(linia,"^%s+"))and(mw.ustring.match(linia,"^(..-:[%s_]-'*)[%s_]*$")));
if(rozdzial)then
return rozdzial,true;
else
local stronicowyparser_analizaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local spis_tresci=stronicowyparser_analizaspisurzeczy_modul.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,true);
if(spis_tresci)then
return linia,true;
else
local rozdzial,main=nil,nil;
if(not mw.ustring.match(linia,"^'+.-[^'%s].-'+.-[^'%s]%s*$"))then
rozdzial,main=mw.ustring.match(linia,"^('+[%s_]*(..-)[%s_]*'*)[%s_]*$");
end;
if(rozdzial)then
local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści");
local rozdzial_main=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(rozdzial,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if(not mw.ustring.match(rozdzial_main,"^.*![%s_]*'*[%s_]*$"))then
if(mw.ustring.match(rozdzial_main,"^[^']-$"))then
if((not mw.ustring.match(rozdzial_main,"^%u[%s_]"))and(not mw.ustring.match(rozdzial_main,"[%s_]%u$")))then
return rozdzial,true;
end;
end;
end;
else
local czy_nie_rozdzial_zerowy=mw.ustring.match(linia,"%.%s*$");
if(czy_nie_rozdzial_zerowy)then return linia,false;end;
end;
return nil;
end;
end;
end;
function p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,z_parametrami_linkowymi,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
if((not przedrotek_listy)or(#przedrotek_listy==0))then return false;end;
local czy_dwukropki=mw.ustring.match(przedrotek_listy,"^:+$");
if(not czy_dwukropki)then return false;end;
local czy_miedzy_cudzyslowami=mw.ustring.match(linia,"^%s*''+.+'*%s*$");
if(not czy_miedzy_cudzyslowami)then return false;end;
if(not z_parametrami_linkowymi)then return true;end;
local szablonowe_modul=require("Module:Szablonowe");
local czy_sa_kody=mw.ustring.match(linia,szablonowe_modul.NormaWzoruKodowaniaTekstu());
if(not czy_sa_kody)then return true;end;
local szablonowe_modul=require("Module:Szablonowe");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
if((obiekt=="SZABLON")or(obiekt=="LINKW"))then
local tab_pozycja_elementow_w_spisie_rzeczy,numer_rodzaju_artykulu,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,nil);
if((tab_pozycja_elementow_w_spisie_rzeczy)and(numer_rodzaju_artykulu==1))then
return false;
end;
end;
end;
return true;
end;
function p.HnNumerWprowadzeniaTekstu(nazwa,atrybuty)
local stronicowyparser_obiekty_modul=mw.loadData('Module:StronicowyParser/obiekty');
local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu;
local numer_rozdzialu=znaczniki_wprowadzenia_tekstu[nazwa];
if((atrybuty)and(numer_rozdzialu>=6))then
local klasa=atrybuty["class"];
if(klasa)then
local mw_hnumber_liczba=mw.ustring.match(klasa,"^%s*mw%-hnumber%-(%d+)%s*$")
or mw.ustring.match(klasa,"^%s*mw%-hnumber%-(%d+)%s+")
or mw.ustring.match(klasa,"%s+mw%-hnumber%-(%d+)%s+")
or mw.ustring.match(klasa,"%s+mw%-hnumber%-(%d+)%s*$");
mw_hnumber_liczba=tonumber(mw_hnumber_liczba) or 6;
mw_hnumber_liczba=(mw_hnumber_liczba>6) and mw_hnumber_liczba or 6;
numer_rozdzialu=mw_hnumber_liczba or numer_rozdzialu;
end;
end;
return numer_rozdzialu;
end;
function p.NumeracjaOrazTekstWprowadzeniaTekstu(zawartosc)
local numeracja,rozdzial=mw.ustring.match(zawartosc,"^%s*([%d%.]*)%s*(.-)%s*$");
return numeracja,rozdzial;
end;
function p.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
local zacznij;local wprowadzenie;local zawsze=false;local ostatnie=false;local bez_kropki=nil;local spac=nil;local nie_rozdzial=nil;local nie_numerowany=nil;
local stronicowyparser_obiekty_modul=mw.loadData('Module:StronicowyParser/obiekty');
local parametry_modul=require("Module:Parametry");
local szablonowe_modul=require("Module:Szablonowe");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści");
local stronicowyparser_analizaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local techniczne_modul=require("Module:Techniczne");
local specjalne_modul=require("Module:Specjalne");
local strony_modul=require("Module:Strony");
local szablony_wprowadzenia_napisu_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy;
local linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy;
local inne_linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy;
local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu;
local maksymalny_rozmiar_rozdzialu_zerowego=70;
return function(linia,tak_ce_spis_tresci)
----
local rozdzial=nil;local numeracja=nil;
local poczatek,rozdzial_z_numeracja=mw.ustring.match(linia,"^([#:%*;]+)%s*('*%s*[%d%.]*%s*.-%s*'*)%s*$");
local rozdzial_z_numeracja_nie_przetworzone=nil;
-----
----
if(not poczatek and not rozdzial_z_numeracja)then
rozdzial_z_numeracja=mw.ustring.match(linia,"^([%d%.]+%s*.-)%s*$") or mw.ustring.match(linia,"^'+(%s*[%d%.]+%s*.-)%s*'*%s*$")
if(rozdzial_z_numeracja)then
poczatek="";
rozdzial_z_numeracja=specjalne_modul["UsuńZnakiSpecjalne"](rozdzial_z_numeracja);
rozdzial_z_numeracja=mw.ustring.gsub(rozdzial_z_numeracja,"^(%s+)","");
rozdzial_z_numeracja=mw.ustring.gsub(rozdzial_z_numeracja,"(%s+)$","");
rozdzial,numeracja=p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja);
else
local function LiniaCydzyslow(linia)
local linia_wew_cudz=mw.ustring.match(linia,"^'+%s*(.-[^']+.-)%s*'+%s*$")
if(not linia_wew_cudz)then return false;end;
return not (mw.ustring.match(linia_wew_cudz,'^%u[%u%s]*$')
and((mw.ustring.match(linia_wew_cudz,"%s%u%s"))or(mw.ustring.match(linia_wew_cudz,"^%u%s"))or(mw.ustring.match(linia_wew_cudz,"%s%u$"))))
end;
if(LiniaCydzyslow(linia))then
rozdzial=linia;
poczatek="";
numeracja="";
else
local url_iter=mw.ustring.gmatch(linia,"(%S+)");
local czy_rozdzial=false;
for url in url_iter do
czy_rozdzial=czy_rozdzial or strony_modul.SprawdzanieURL(url);
if(czy_rozdzial)then
break;
end;
end;
if(czy_rozdzial)then
poczatek="";
numeracja="";
rozdzial=linia;
end;
end;
end;
else
rozdzial_z_numeracja_nie_przetworzone=rozdzial_z_numeracja;
rozdzial_z_numeracja=specjalne_modul["UsuńZnakiSpecjalne"](rozdzial_z_numeracja);
rozdzial_z_numeracja=mw.ustring.gsub(rozdzial_z_numeracja,"^(%s+)","");
rozdzial_z_numeracja=mw.ustring.gsub(rozdzial_z_numeracja,"(%s+)$","");
rozdzial,numeracja=p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja);
end;
local ze_specialnymi_obiektami=((rozdzial) and true or false);local czy_centrowanie=false;local czy_znaczniki_hn=false;local tekst;
local nazwa,zawartosc,atrybuty;
if(rozdzial)then tekst=rozdzial;else tekst=linia;end;
----
local function WykluczenieNieodpowiednichNormSzablonowych(rozdzial)
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(rozdzial,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
if((obiekt=="GALERIA")or(obiekt=="ŹRÓDŁO")or(obiekt=="PRE")or(obiekt=="INNEPRE")or(obiekt=="WIKITABELA")or(obiekt=="MAPAOBRAZU"))then
return nil;
elseif(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(stronicowyparser_obiekty_modul.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego[nazwa_szablonu])then
return true;
end;
end);
if(wynik)then return nil;end;
end;
end;
return true;
end;
local FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu=function(wartosc)
if(mw.ustring.match(wartosc,"^%s*%d+%s*/%s*%d+%s*$"))then return nil;end;
if(mw.ustring.match(wartosc,"!%s*'*%s*$"))then return nil;end;
numeracja,rozdzial=p.NumeracjaOrazTekstWprowadzeniaTekstu(wartosc);
if(rozdzial)then
local wynik=WykluczenieNieodpowiednichNormSzablonowych(rozdzial);
if(not wynik)then
numeracja=nil;rozdzial=nil;
return nil;
end;
end;
end;
local function NiestardardoweSzablonoweWprowdzeniaTekstu(szablon,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(czy_ce)then
local wartosc=tabela_parametrow_szablonu[czy_ce];
if(wartosc)then
return FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu(wartosc);
end;
return nil;
end;
end;
local function NiestardardoweZnacznikoweWprowdzeniaTekstu(szablon,nazwa,zawartosc,atrybuty)
if(zawartosc)then
if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
return FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu(zawartosc);
end;
end;
return nil;
end;
----
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
---
local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(czy_ce)then
ze_specialnymi_obiektami=true;
czy_centrowanie=true;
NiestardardoweSzablonoweWprowdzeniaTekstu(szablon,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow);
--if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
return true;
elseif((linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod)))then
ze_specialnymi_obiektami=true;
if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
return true;
end;
end);
if(wynik)then return;end;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
ze_specialnymi_obiektami=true;
return nil;
elseif((obiekt=="PRE")or(obiekt=="MATH")or(obiekt=="ŹRÓDŁO")or(obiekt=="INNEPRE"))then
if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
ze_specialnymi_obiektami=true;
return nil;
elseif(obiekt=="ZNACZNIK")then
nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
if(nazwa=="center")then
ze_specialnymi_obiektami=true;
czy_centrowanie=true;
NiestardardoweZnacznikoweWprowdzeniaTekstu(szablon,nazwa,zawartosc,atrybuty);
--if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
return nil;
elseif(znaczniki_wprowadzenia_tekstu[nazwa])then
ze_specialnymi_obiektami=true;
czy_znaczniki_hn=true;
NiestardardoweZnacznikoweWprowdzeniaTekstu(szablon,nazwa,zawartosc,atrybuty);
return nil;
end;
end;
end;
return szablon;
end);
for szablon,obiekt,kod in iter do end;
rozdzial=rozdzial and parametry_modul["Odstępy"](rozdzial) or nil;
poczatek=poczatek and parametry_modul["Odstępy"](poczatek) or nil;
numeracja=numeracja and parametry_modul["Odstępy"](numeracja) or nil;
if(not ze_specialnymi_obiektami)then
local rozdzial,czy_standardowe_rozdzialy=p.CzyZerowyNapisWprowadzeniaTekstu(rozdzial or linia,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if((rozdzial)and(czy_standardowe_rozdzialy))then
if(#rozdzial<=maksymalny_rozmiar_rozdzialu_zerowego)then
if(not mw.ustring.match(rozdzial,"^.+[%.%;!,%?]%s*'+%s*$"))then
return linia,rozdzial,0,nil,numeracja;
else
return nil;
end;
else
local czy_poczatek_niepusty=parametry_modul.CzyTak(poczatek);
local czy_numeracja_niepusta=parametry_modul.CzyTak(numeracja);
if(((not czy_poczatek_niepusty)or(#poczatek==0))and((not czy_numeracja_niepusta)or(#numeracja==0)))then
return nil;
elseif(not mw.ustring.match(rozdzial,"^.+[%.%;!,%?]%s*'+%s*$"))then
return linia,rozdzial,0,nil,numeracja;
else
return nil;
end;
end;
else
return nil;
end;
elseif(czy_centrowanie)then
if(tak_ce_spis_tresci)then
if((rozdzial)and(numeracja))then
if((not parametry_modul.CzyTak(numeracja))and(not parametry_modul.CzyTak(rozdzial)))then
return nil,nil,nil,nil;
end;
return linia,rozdzial,2,nil,numeracja,true;
end;
end;
return nil;
elseif(czy_znaczniki_hn)then
if((rozdzial)and(numeracja))then
if((not parametry_modul.CzyTak(numeracja))and(not parametry_modul.CzyTak(rozdzial)))then
return nil,nil,nil,nil;
end;
local numer_rozdzialu=p.HnNumerWprowadzeniaTekstu(nazwa,atrybuty);
return linia,rozdzial,numer_rozdzialu,nil,numeracja;
end;
elseif(rozdzial)then
local czy_numeracja_niepusta=parametry_modul.CzyTak(numeracja);
local czy_rozdzial_niepusty=parametry_modul.CzyTak(rozdzial);
if((not czy_numeracja_niepusta)and(not czy_rozdzial_niepusty))then
return nil;
end;
if(#rozdzial<=maksymalny_rozmiar_rozdzialu_zerowego)then
local czy_pominac_ten_rozdzial_jako_rozdzial=rozdzial_z_numeracja_nie_przetworzone and p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(poczatek,rozdzial_z_numeracja_nie_przetworzone,false,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) or nil;
if(not czy_pominac_ten_rozdzial_jako_rozdzial)then
if((#poczatek>0)or(not mw.ustring.match(rozdzial,"^.+[%.%;!,%?]%s*'+%s*$")))then
return linia,rozdzial,(#poczatek*(-1)),poczatek,numeracja;
else
return nil;
end;
else
return nil;
end;
else
local czy_poczatek_niepusty=parametry_modul.CzyTak(poczatek);
if(((not czy_poczatek_niepusty)or(#poczatek==0))and((not czy_numeracja_niepusta)or(#numeracja==0)))then
return nil;
else
local czy_pominac_ten_rozdzial_jako_rozdzial=rozdzial_z_numeracja_nie_przetworzone and p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(poczatek,rozdzial_z_numeracja_nie_przetworzone,false,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) or nil;
if(not czy_pominac_ten_rozdzial_jako_rozdzial)then
if((#poczatek>0)or(not mw.ustring.match(rozdzial,"^.+[%.%;!,%?]%s*'+%s*$")))then
return linia,rozdzial,(#poczatek*(-1)),poczatek,numeracja;
else
return nil;
end;
else
return nil;
end;
end;
end;
else
return nil;
end;
return nil;
end;
end;
function p.TekstPoNapisieWprowadzeniaTekstuStrony(frame)
local strona=frame.args[1];
local id_rozdzialu1=frame.args[2] or "";
local id_rozdzialu2=frame.args[3] or "";
strona=frame:preprocess(strona);
local title=mw.title.makeTitle('',strona);
if((not title)or(not title.exists))then
return nil;
end;
local tekst=title:getContent();
if(not tekst)then return nil;end;
return p.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2);
end;
function p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(tekst)
tekst=mw.ustring.gsub(tekst,"^[%s_]+","");
tekst=mw.ustring.gsub(tekst,"[%s_]+$","");
tekst=mw.ustring.gsub(tekst,"[%s_]+","_");
return tekst;
end;
function p.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony(frame)
local strona=frame.args[1];
local id_rozdzialu=frame.args[2] or "";
strona=frame:preprocess(strona);
local title=mw.title.makeTitle('',strona);
if((not title)or(not title.exists))then
return nil;
end;
local tekst=title:getContent();
if(not tekst)then return nil;end;
id_rozdzialu=frame:preprocess(id_rozdzialu);
local specjalne_modul=require("Module:Specjalne");
id_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](id_rozdzialu);
id_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(id_rozdzialu);
local html_modul=require("Module:Html");
id_rozdzialu=html_modul.DecodeKoduHTMLZnaku(id_rozdzialu);
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
--tekst=mw.ustring.gsub(tekst,"\n\n","\n\n");
tekst=p.WierszHNumer(tekst);
local szeregi_modul=require("Module:Szeregi");
local iter=szeregi_modul.IteratorLiniiTekstu(tekst);
local tab_rozdzialy={};
local specjalne_modul=require("Module:Specjalne");
for wiersz in iter do
local czy_naglowek,czy_naglowek_wiki=p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz);
if(czy_naglowek)then
local nazwa_rozdzialu,poziom_rozdzialu;
if(czy_naglowek_wiki)then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajNapisPoziomuWprowadzeniaTekstu(wiersz);
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajTekstHNumerNapisuWprowadzeniaTekstu(wiersz);
end;
nazwa_rozdzialu=frame:preprocess(nazwa_rozdzialu);
local nazwa_rozdzialu_aktualna=nazwa_rozdzialu;
nazwa_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](nazwa_rozdzialu);
nazwa_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(nazwa_rozdzialu);
nazwa_rozdzialu=html_modul.DecodeKoduHTMLZnaku(nazwa_rozdzialu);
local c=1;
for i=1,#tab_rozdzialy,1 do
if(tab_rozdzialy[i]==nazwa_rozdzialu)then
c=c+1;
end;
end;
if(c>1)then
nazwa_rozdzialu=nazwa_rozdzialu.."_"..c;
end;
table.insert(tab_rozdzialy,nazwa_rozdzialu);
if(id_rozdzialu==nazwa_rozdzialu)then
return nazwa_rozdzialu_aktualna;
end;
end;
end;
return nil;
end;
function p.NumerSekcjiStrony(frame)
local strona=frame.args[1];
local id_rozdzialu=frame.args[2] or "";
strona=frame:preprocess(strona);
local title=mw.title.makeTitle('',strona);
if((not title)or(not title.exists))then
return nil;
end;
local tekst=title:getContent();
if(not tekst)then return nil;end;
id_rozdzialu=frame:preprocess(id_rozdzialu);
local specjalne_modul=require("Module:Specjalne");
id_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](id_rozdzialu);
id_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(id_rozdzialu);
local html_modul=require("Module:Html");
id_rozdzialu=html_modul.DecodeKoduHTMLZnaku(id_rozdzialu);
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
--tekst=mw.ustring.gsub(tekst,"\n\n","\n\n");
tekst=p.WierszHNumer(tekst);
local szeregi_modul=require("Module:Szeregi");
local iter=szeregi_modul.IteratorLiniiTekstu(tekst);
local tab_rozdzialy={};
local ile=1;
for wiersz in iter do
local czy_naglowek,czy_naglowek_wiki=p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz);
if(czy_naglowek)then
local nazwa_rozdzialu,poziom_rozdzialu;
if(czy_naglowek_wiki)then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajNapisPoziomuWprowadzeniaTekstu(wiersz);
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajTekstHNumerNapisuWprowadzeniaTekstu(wiersz);
end;
nazwa_rozdzialu=frame:preprocess(nazwa_rozdzialu);
nazwa_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](nazwa_rozdzialu);
nazwa_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(nazwa_rozdzialu);
nazwa_rozdzialu=html_modul.DecodeKoduHTMLZnaku(nazwa_rozdzialu);
local c=1;
for i=1,#tab_rozdzialy,1 do
if(tab_rozdzialy[i]==nazwa_rozdzialu)then
c=c+1;
end;
end;
if(c>1)then
nazwa_rozdzialu=nazwa_rozdzialu.."_"..c;
end;
table.insert(tab_rozdzialy,nazwa_rozdzialu);
if(id_rozdzialu==nazwa_rozdzialu)then
return ile;
end;
ile=ile+1;
end
end;
return nil;
end;
function p.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2)
local frame=mw.getCurrentFrame();
local specjalne_modul=require("Module:Specjalne");
local html_modul=require("Module:Html");
id_rozdzialu1=frame:preprocess(id_rozdzialu1);
id_rozdzialu1=specjalne_modul["WydzielZwykłyTekst"](id_rozdzialu1);
id_rozdzialu1=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(id_rozdzialu1);
id_rozdzialu1=html_modul.DecodeKoduHTMLZnaku(id_rozdzialu1);
id_rozdzialu2=frame:preprocess(id_rozdzialu2);
id_rozdzialu2=specjalne_modul["WydzielZwykłyTekst"](id_rozdzialu2);
id_rozdzialu2=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(id_rozdzialu2);
id_rozdzialu2=html_modul.DecodeKoduHTMLZnaku(id_rozdzialu2);
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
--tekst=mw.ustring.gsub(tekst,"\n\n","\n\n");
tekst=p.WierszHNumer(tekst);
local szeregi_modul=require("Module:Szeregi");
local iter=szeregi_modul.IteratorLiniiTekstu(tekst);
local tab_rozdzialy={};
local str=""
local nazwa_rozdzialu_aktualna;
local poziom_rozdzialu_aktualny;
for wiersz in iter do
local czy_naglowek,czy_naglowek_wiki=p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz);
if(czy_naglowek)then
local nazwa_rozdzialu,poziom_rozdzialu;
if(czy_naglowek_wiki)then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajNapisPoziomuWprowadzeniaTekstu(wiersz);
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajTekstHNumerNapisuWprowadzeniaTekstu(wiersz);
end;
nazwa_rozdzialu=frame:preprocess(nazwa_rozdzialu);
nazwa_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](nazwa_rozdzialu);
nazwa_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(nazwa_rozdzialu);
nazwa_rozdzialu=html_modul.DecodeKoduHTMLZnaku(nazwa_rozdzialu);
local c=1;
for i=1,#tab_rozdzialy,1 do
if(tab_rozdzialy[i]==nazwa_rozdzialu)then
c=c+1;
end;
end;
if(c>1)then
nazwa_rozdzialu=nazwa_rozdzialu.."_"..c;
end;
table.insert(tab_rozdzialy,nazwa_rozdzialu);
if(((nazwa_rozdzialu_aktualna)and(nazwa_rozdzialu_aktualna==id_rozdzialu1))
and((((id_rozdzialu2=="")or(not id_rozdzialu2))and(poziom_rozdzialu<=poziom_rozdzialu_aktualny))or(nazwa_rozdzialu==id_rozdzialu2)))then
return str;
end;
if((id_rozdzialu1~="")and(nazwa_rozdzialu==id_rozdzialu1))then
nazwa_rozdzialu_aktualna=nazwa_rozdzialu;
poziom_rozdzialu_aktualny=poziom_rozdzialu;
str="";
elseif(id_rozdzialu1=="")then
nazwa_rozdzialu_aktualna="";
poziom_rozdzialu_aktualny=0;
if(id_rozdzialu2=="")then
return str;
elseif(nazwa_rozdzialu==id_rozdzialu2)then
return str;
else
str=(str~="")and (str.."\n"..wiersz) or wiersz;
end;
else
str=(str~="")and (str.."\n"..wiersz) or wiersz;
end;
else
str=(str~="")and (str.."\n"..wiersz) or wiersz;
end;
end;
if((id_rozdzialu1)and(id_rozdzialu1==""))then
return str;
elseif((nazwa_rozdzialu_aktualna)and(nazwa_rozdzialu_aktualna==id_rozdzialu1))then
return str;
end;
return "";
end;
function p.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-5];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy;
end;
end;
end;
local szablonowe_modul=require("Module:Szablonowe");
----
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local ktore=szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu[nazwa_szablonu];
if(not ktore)then return;end;
local tab=mw.text.split(tostring(ktore),"%s*;%s*",false);
local wynik="";
for _,num in pairs(tab)do
local numer_parametru=tonumber(num) or num;
for parametr,wartosc in pairs(tabela_parametrow_szablonu)do
if(parametr==numer_parametru)then
wynik=(wynik or "")..wartosc;
end;
end;
end;
return wynik;
end);
if((tablica_danych_parametrow_szablonu_strony)and(kod)and(wynik))then
if(not tablica_danych_parametrow_szablonu_strony[-5])then tablica_danych_parametrow_szablonu_strony[-5]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-5];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy=wynik;
end;
return wynik;
end;
function p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-6];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy;
end;
end;
end;
local szablonowe_modul=require("Module:Szablonowe");
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local szablony_z_dodatkiem_obiektowym=stronicowyparser_obiekty_modul.szablony_z_dodatkiem_obiektowym;
local dodatek=szablony_z_dodatkiem_obiektowym[nazwa_szablonu];
if(dodatek)then
local techniczne_modul=require("Module:Techniczne");
for name,value in pairs(tabela_parametrow_szablonu)do
local name=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](name);
local value=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](value);
dodatek=mw.ustring.gsub(dodatek,"%$%("..name.."%)",value);
end;
return dodatek;
end;
end);
if((tablica_danych_parametrow_szablonu_strony)and(kod)and(wynik))then
if(not tablica_danych_parametrow_szablonu_strony[-6])then tablica_danych_parametrow_szablonu_strony[-6]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-6];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy=wynik;
end;
return wynik;
end;
function p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_modul=require("Module:Techniczne");
tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
return "\n\n ";
end,nil,nil,
function(szablon,obiekt,kod,poziom_iteracji)
if(poziom_iteracji==0)then
if(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((nazwa=="br")or(nazwa=="hr"))then
return true;
end;
elseif(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
----
if((nazwa_szablonu=="Br")or(nazwa_szablonu=="Hr"))then
return true;
end;
end);
if(wynik)then return wynik;end;
end;
end;
return nil;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
return tekst;
end;
function p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_obiektow_strony_dany_modul_uzyskany,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)
local CzySpecjalnaLinia=function(linia)
local czy_specjalna_linia=mw.ustring.match(linia,"^[%*,;:#]+") or mw.ustring.match(linia,"^%s*$") or mw.ustring.match(linia,"^%-%-%-%-");
if(not czy_specjalna_linia)then
if(mw.ustring.match(linia,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$"))then
return true;
end;
end;
return czy_specjalna_linia;
end;
----
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_modul=require("Module:Techniczne");
local CzyLiniaZeSpecjalnymiSzablonami=function(linia)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local szablony_w_nie_w_tej_samej_linii=stronicowyparser_obiekty_modul.szablony_w_nie_w_tej_samej_linii;
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,pelna_nazwa_spisu_tresci,tablica_obiektow_strony_dany_modul_uzyskany);
for szablon,obiekt,kod in iterator do
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(szablony_w_nie_w_tej_samej_linii[nazwa_szablonu])then
return true;
end;
end);
if(wynik)then return wynik;end;
end;
end;
return nil;
end;
----
--tekst=p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,tablica_obiektow_strony_dany_modul_uzyskany,tablica_danych_parametrow_szablonu_strony);
----
local tab_linie_tekstu=mw.text.split(tekst,"\n");
if(#tab_linie_tekstu==0)then return "";end;
local tekst_nowy=tab_linie_tekstu[1];
local czy_linia_poprz=CzySpecjalnaLinia(tekst_nowy) or CzyLiniaZeSpecjalnymiSzablonami(tekst_nowy);
if(not czy_linia_poprz)then
tekst_nowy=p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst_nowy,pelna_nazwa_spisu_tresci,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;
for i=2,#tab_linie_tekstu,1 do
local linia=tab_linie_tekstu[i];
local aktualna_specjalna_linia=CzySpecjalnaLinia(linia) or CzyLiniaZeSpecjalnymiSzablonami(linia);
if(not aktualna_specjalna_linia)then
linia=p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(linia,pelna_nazwa_spisu_tresci,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;
if((not czy_linia_poprz)and(not aktualna_specjalna_linia))then
--local czy_wprowadzenie=mw.ustring.match(linia,"^>")
local tekst_nowy2=mw.ustring.match(tekst_nowy,"^(.*\n)[^%S\n]*\n[^%S\n]*$");
tekst_nowy=(tekst_nowy2 or tekst_nowy)..((tekst_nowy2) and "" or " ")..linia;
else
tekst_nowy=tekst_nowy.."\n"..linia;
end;
czy_linia_poprz=aktualna_specjalna_linia;
end;
return tekst_nowy;
end;
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_inne_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
local nazwy_modul=require("Module:Nazwy");
tablica_analizy_obiektow_strony_dany_modul=tablica_analizy_obiektow_strony_dany_modul or {};
tablica_danych_parametrow_szablonu_strony=tablica_danych_parametrow_szablonu_strony or {};
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local stronicowyparser_analizaaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local szablony_wprowadzenia_napisu_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy;
local szablonowe_modul=require("Module:Szablonowe");
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local html_modul=require("Module:Html");
local szeregi_modul=require("Module:Szeregi");
local szablony_do_usuwania_z_tekstu=stronicowyparser_obiekty_modul.szablony_do_usuwania_z_tekstu;
local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej=(nazwa_przestrzeni and nazwa_przestrzeni_ksiazki and nazwa_ksiazki and nazwa_spisu_tresci)
and nazwy_modul["NazwaModułu"](((nazwy_np_modul.Template~=nazwa_przestrzeni) and (nazwa_przestrzeni) or ""),nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci)
or nil;
local pelna_nazwa_spisu_tresci_szablonowa=((pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej)and(((nazwa_przestrzeni=="") and ":" or "")..pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej) or nil);
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;
local __FUNKCJA_OPERACJE_USUWANIE_BAZOWE=function(szablon,obiekt,kod,poziom_iteracji)
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil;
end;
--local tab_nazwa_spisow_przekierowaniowych={};
if(czy_dalej_rozwazac_zakodowane)then
----
local szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu=stronicowyparser_obiekty_modul.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu;
local tab_szablony_bez_generowania_napisowego=stronicowyparser_obiekty_modul.szablony_bez_generowania_napisowego;
local szablony_nie_typowo_linkowe=stronicowyparser_obiekty_modul.szablony_nie_typowo_linkowe;
local znaczniki_szablonowe=stronicowyparser_obiekty_modul.znaczniki_szablonowe;
local szablony_sztucznego_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_sztucznego_wprowadzenia_tekstu;
----
local function UsuwanieNowychLiniiZnacznikowe(szablon)
local tak=nil;
szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
-----
if((nazwa_szablonu=="Br")or(nazwa_szablonu=="Hr"))then
if(poziom_iteracji==0)then tak=true;end;
return " ";
end;
end);
if(wynik)then return wynik,nil,true;end;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((nazwa=="br")or(nazwa=="hr"))then
if(poziom_iteracji==0)then tak=true;end;
return " ",nil,true;
end;
end;
return nil,true;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
return szablon,tak;
end;
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)
local czy_tak=false;
local szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(czy_ce)then
local szablon_spis_tresci_zawartosc=tabela_parametrow_szablonu[czy_ce];
if(szablon_spis_tresci_zawartosc)then
czy_tak=czy_tak or true;
return szablon_spis_tresci_zawartosc;
end;
end;
return nil;
end);
if(wynik)then return wynik,nil,true;end;
return nil,true;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
czy_tak=czy_tak or true;
return zawartosc,nil,true;
end;
end;
end;
return nil,true;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
return szablon,czy_tak;
end;
local Modyfikacja=function(szablon,obiekt,kod)
local czy_tak=false;
local szablon,czy_tak1=UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu(szablon,obiekt,kod);
czy_tak=czy_tak or czy_tak1;
local szablon,czy_tak2=UsuwanieNowychLiniiZnacznikowe(szablon);
czy_tak=czy_tak or czy_tak2;
local szablon,ile=mw.ustring.gsub(szablon,"\n"," ");
czy_tak=czy_tak or (ile>0);
return szablon,czy_tak;
end;
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)
if(obiekt=="SZABLON")then
local tabela_parametrow_szablonu=parametr1;
local nazwa_szablonu=parametr2;
local tabela_modyfikatorow=parametr3;
if(szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu])then
local wynik,czy_tak=Modyfikacja(szablon,obiekt,kod);
if(not czy_tak)then return nil,true;end;
return wynik,true;
end;
elseif(obiekt=="ZNACZNIK")then
local nazwa=parametr1;
local zawartosc=parametr2;
local tab_atrybuty=parametr3;
if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
local wynik,czy_tak=Modyfikacja(szablon,obiekt,kod);
if(not czy_tak)then return nil,true;end;
return wynik,true;
end;
end;
end;
----
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
---
--local tab_nazwa_spisow_przekierowaniowych={};
---
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)
local spacja=" ";
local tab_spacja={
["nbsp"]=spacja,
["#32"]=spacja,
["#x20"]=spacja,
};
komorka=mw.ustring.gsub(komorka,"&([^&;]+);",tab_spacja);
local komorka_stara=komorka;
if(not nie_trimowanie)then
komorka=mw.text.trim(komorka);
end;
if(mw.ustring.match(komorka_stara,"^%s*[#%*:;>]"))then komorka=" "..komorka;end;
return ((not nie_trimowanie)and ("\n\n"..komorka.."\n") or komorka);
end;
----
local function ZamienNaKody(zawartosc,czy_szablon)
local function Linie(wzor)
zawartosc=mw.ustring.gsub(zawartosc,wzor,function(a,b)
return "&#"..mw.ustring.byte(a)..";"..(b or "");
end);
end;
if(not (mw.ustring.sub(zawartosc,1,1)=="\n"))then
Linie("^([=%*#:;])");
end;
local len=mw.ustring.len(zawartosc);
if(not (mw.ustring.sub(zawartosc,len,len)=="\n"))then
Linie("([=])([^%S\n]*)$");
end;
return zawartosc;
end;
tekst_rozwiniety_calego_artykulu=szablonowe_modul:KodowanieNiezakodowanychNormKodowychReferencjiTekstu(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,false,function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)
if(obiekt=="SZABLON")then
local tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=parametr1,parametr2,parametr3;
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local numer_parametru=szablony_sztucznego_wprowadzenia_tekstu[nazwa_szablonu];
if(numer_parametru)then
local parametr=tabela_parametrow_szablonu[numer_parametru];
if(parametr)then
local czy_modyfikacja=false;
szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa=="div")then
if(p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego(parametr,zawartosc,obiekt,kod))then
czy_modyfikacja=true;
return zawartosc and ZamienNaKody(PrzetwarzanieZnacznikowe(zawartosc,true),false) or "";
end;
end;
end;
return nil,true;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
if(czy_modyfikacja)then
return szablon;
end;
end;
end;
local function AnalizaSzablonu(szablon)
local wynik=p.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
if(wynik)then return wynik;end;
if(szablony_do_usuwania_z_tekstu[nazwa_szablonu])then return "";end;
local czy_szablony_bez_generowania_napisowego=tab_szablony_bez_generowania_napisowego[nazwa_szablonu];
if(czy_szablony_bez_generowania_napisowego)then return "";end;
if(szablony_nie_typowo_linkowe[nazwa_szablonu])then return "";end;
--if(mw.ustring.match(nazwa_szablonu,"/"))then return "";end;
end;
local szablon2=AnalizaSzablonu(szablon);
if(szablon2)then return szablon2;end;
local czy_center;
szablon,czy_center=UsuwanieZnacznikowe(szablon2 or szablon,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) or szablon2;
if(szablon)then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=nil;
end;
end;
local wynik,tabela_parametrow_szablonu=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local szablon_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(szablon_ce)then
local zawartosc=tabela_parametrow_szablonu[szablon_ce];
if((zawartosc)and(p.CzyJestNapisWprowadzeniaTekstu(zawartosc) or p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)))then
return zawartosc,tabela_parametrow_szablonu;
end;
end;
return nil,tabela_parametrow_szablonu;
end);
if(wynik)then return wynik;end;
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
return nil;
elseif(czy_center)then
local szablon_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(szablon_ce)then
local zawartosc=tabela_parametrow_szablonu[szablon_ce];
if((zawartosc)and(p.CzyJestNapisWprowadzeniaTekstu(zawartosc) or p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)))then
return zawartosc;
else
return nil;
end;
else
return nil;
end;
end;
local znacznik_numer=znaczniki_szablonowe[nazwa_szablonu];
if(znacznik_numer)then
local parametr=tabela_parametrow_szablonu[znacznik_numer];
if(parametr)then
return ZamienNaKody(parametr,true);
end;
end;
end;
local wynik=FuncSzablon(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow);
if(wynik)then return wynik,nil,true;end;
return nil,true;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,atrybuty=parametr1,parametr2,parametr3;
if((nazwa~="center")and(not znaczniki_wprowadzenia_tekstu[nazwa]))then
if((nazwa~="ref")and(nazwa~="br")and(nazwa~="hr"))then
local fun=function()
if(nazwa~="div")then
return zawartosc and ZamienNaKody(PrzetwarzanieZnacznikowe(zawartosc,true),false) or "";
elseif((zawartosc)and(zawartosc~=""))then
if(not p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego(tekst,zawartosc,obiekt,kod))then
local ile1;local ile2;
zawartosc,ile1=mw.ustring.gsub(zawartosc,"^([^\n]+\n)",function(s)
if(not mw.ustring.match(s,"^%s*$"))then return PrzetwarzanieZnacznikowe(s,true).."\n\n";end;
return "\n";
end);
zawartosc,ile2=mw.ustring.gsub(zawartosc,"([^\n]+)$",function(s)
if(not mw.ustring.match(s,"^%s*$"))then return "\n\n"..s;end;
return "";
end);
return ZamienNaKody(zawartosc,false);
else
return zawartosc and ZamienNaKody(PrzetwarzanieZnacznikowe(zawartosc,true),false) or "";
end;
else
return "";
end;
end;
return fun,nil,true;
end;
else
if((zawartosc)and(p.CzyJestNapisWprowadzeniaTekstu(zawartosc) or p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)))then
return zawartosc,nil,true;
end;
local szablon,czy_center=UsuwanieZnacznikowe(szablon,obiekt,kod,nazwa,zawartosc,atrybuty);
if(szablon)then
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[100];
if(tablica_danych_parametrow_szablonu_strony_numer)then
tablica_danych_parametrow_szablonu_strony_numer[kod]=nil;
end;
end;
end;
return nil,true;
elseif(obiekt=="INNEPRE")then
if(mw.ustring.match(szablon,"^%s*$"))then
return "",nil,true;
end;
return nil,true;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
local tak=false;
szablon=szablonowe_modul:KodowanieNiezakodowanychNormKodowychReferencjiTekstu(szablon,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,false,function(szablon,obiekt,kod,parametr1,parametr2,parametr3)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if((nazwa_szablonu=="Br")or(nazwa_szablonu=="Hr"))then
return " ";
else
local nazwa_zmiennej=znaczniki_szablonowe[nazwa_szablonu];
if(nazwa_zmiennej)then
local zawartosc=tabela_parametrow_szablonu[nazwa_zmiennej];
return zawartosc or " ";
end;
end;
end);
if(wynik)then return wynik,nil,true;end;
elseif(obiekt=="ZNACZNIK")then
tak=true;
local nazwa,zawartosc,atrybuty=parametr1,parametr2,parametr3;
if((nazwa=="br")or(nazwa=="hr"))then
return " ",nil,true;
else
return zawartosc or "",nil,true;
end;
end;
return nil,true;
end);
if(tak)then
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
end;
local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik=stronicowyparser_analizaaspisurzeczy_modul.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true);
if(not czy_element_spisu)then return "",nil,true;end;
elseif(obiekt=="WIKITABELA")then
szablon=mw.ustring.match(szablon,"^{|(.-)|}$");
szablon=mw.ustring.gsub(szablon,"^[^\n]+","");
--szablon=mw.ustring.gsub(szablon,"[|!][|!]","\n\n");
szablon=mw.ustring.gsub(szablon,"\n|[%-%+]?[^%S\n]*[^|\n]*|([^|\n]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end);
szablon=mw.ustring.gsub(szablon,"\n|%-([^|\n]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end);
szablon=mw.ustring.gsub(szablon,"\n|%-[^%S\n|]*","\n\n");
szablon=mw.ustring.gsub(szablon,"||([^|\n]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end)
szablon=mw.ustring.gsub(szablon,"\n|%+[^%S\n]*([^\n]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end);
szablon=mw.ustring.gsub(szablon,"\n|([^\n|]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end);
return szablon,nil,true;
end;
return nil,true;
end,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)
tekst_rozwiniety_calego_artykulu=szeregi_modul.ZamianaZnakowaLinii(tekst_rozwiniety_calego_artykulu,function(linia)
local linia_nie_nil=mw.ustring.match(linia,wzor);
if(linia_nie_nil)then
local tak=nil;
local linia_tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(linia_nie_nil,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if((nazwa_szablonu=="Br")or(nazwa_szablonu=="Hr"))then
tak=true;
return " ";
end;
local szablon_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(szablon_ce)then
local tekst=tabela_parametrow_szablonu[szablon_ce];
if(tekst)then
tak=true;
return tekst;
end;
end;
end);
if(wynik)then return wynik,nil,true;end;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((nazwa=="br")or(nazwa=="hr"))then
tak=true;
return " ",nil,true;
elseif((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
tak=true;
return zawartosc or "",nil,true;
end;
elseif(obiekt=="PRE")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
zawartosc=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
if(czy_dodatni_rozdzial)then
local zawartosc=mw.ustring.gsub(zawartosc,"\n"," ");
tak=true;
return zawartosc,nil,true;
else
tak=true;
return zawartosc,nil,true;
end;
else
tak=true;
return "",nil,true;
end;
elseif(obiekt=="ŹRÓDŁO")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
zawartosc=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
if(czy_dodatni_rozdzial)then
local zawartosc=mw.ustring.gsub(zawartosc,"\n"," ");
tak=true;
return zawartosc,nil,true;
else
tak=true;
return zawartosc,nil,true;
end;
else
tak=true;
return "",nil,true;
end;
elseif(obiekt=="NOWIKI")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
zawartosc=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
local zawartosc=mw.ustring.gsub(zawartosc,"\n"," ");
tak=true;
return zawartosc,nil,true;
else
tak=true;
return "",nil,true;
end;
end;
return nil,true;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
return linia_tekst;
else
return nil;
end;
end);
end;
-----
LiniaRozdzialyDodatnieOrazUjemne("^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$",true);
LiniaRozdzialyDodatnieOrazUjemne("^([%*#;:]+[^\n]*)$",false);
tekst_rozwiniety_calego_artykulu=szablonowe_modul:ModyfikowanieKodowoSzablonoweZakodowanegoTekstu(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,
function(szablon,obiekt,kod,poziom_iteracji,szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica)
if(obiekt=="SZABLON")then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu])then
return "\n\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod).."\n\n ";
else
local numer_parametru=szablony_sztucznego_wprowadzenia_tekstu[nazwa_szablonu];
if(numer_parametru)then
local parametr=tabela_parametrow_szablonu[numer_parametru];
if(parametr)then
local naglowek=p.NapisWprowadzeniaTekstuHNumer(parametr);
if(naglowek)then
local obiekt_hnumer="ZNACZNIK";
local kod_hnumer=(#(tablica_analizy_obiektow_strony_dany_modul[obiekt_hnumer] or {}))+1;
return "\n\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt_hnumer,kod_hnumer).."\n\n ",naglowek,obiekt_hnumer,kod_hnumer;
end;
end;
end;
end;
end);
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
return "\n\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod).."\n\n ";
end;
elseif(obiekt=="INNEPRE")then
return "\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod).."\n";
elseif((obiekt=="PRE")or(obiekt=="ŹRÓDŁO")or(obiekt=="GALERIA")or(obiekt=="MAPAOBRAZU")or(obiekt=="PUDEŁKOWEJŚCIA"))then
return "\n\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod).."\n\n ";
end;
end,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
-----
end;
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"<!%-%-.-%-%->","");
local tab_magiczne_derektywy=stronicowyparser_obiekty_modul.magiczne_derektywy;
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"__(%u+)__",function(derektywy)
return tab_magiczne_derektywy[derektywy] and "" or nil;
end);
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"^(%-%-%-%-+)[^%S\n]*([^\n]+)","%1\n %2");
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"\n(%-%-%-%-+)[^%S\n]*([^\n]+)","\n%1\n %2");
--tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"\n\n","\n\n");
if(czy_dalej_rozwazac_zakodowane)then
----
tekst_rozwiniety_calego_artykulu=p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE);
tekst_rozwiniety_calego_artykulu=__FUNKCJA_ANALIZA_SPISU and __FUNKCJA_ANALIZA_SPISU(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or tekst_rozwiniety_calego_artykulu;
end;
--mw.log( tekst_rozwiniety_calego_artykulu)
--local iter_main=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"\n([^\n]*)\n");
local iter_main=szeregi_modul.IteratorLiniiTekstu(tekst_rozwiniety_calego_artykulu);
local naglowek_aktualnego_rozdzialu;
local linia_naglowka_aktualnego_rozdzialu;
local poziom_aktualnego_rozdzialu;
local poczatek_aktualnego_rozdzialu;
local numeracja_aktualnego_rozdzialu;
local czy_rozdzial_aktualny_centrowany;
local czy_koniec=false;
----
local odczyt_jakie_spisy_tresci=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu;
local jakie_spisy_tresci=parametry_modul["KopiujTabelęElementów"](odczyt_jakie_spisy_tresci);
setmetatable(jakie_spisy_tresci,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local czy_ce_spis_tresci=nil;
----
local czy_w_spisie_tresci=((not czy_inne_rozdzialy_analizowac)and true or nil);
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local parser=p.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
-----
local tak_ce_spis_tresci=nil;
local m=0;
local function Wystepowanie(linia,funkcja1,funkcja2)
local czy_znaleziono_okladka=false;
local function RozwazajLinie(szablon,obiekt,kod)
if(szablon)then
local tab_2,numer_rodzaju_artykulu,id,parametry,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,p.__FUNKCJA_KOMPLETOWANIA);
if(not kom)then
local tab=((tab_2 and tab_2[1]) and tab_2 or nil);
if(tab)then
local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab[1],false);
local czy_okladka=mw.ustring.match(artykul,stronicowyparser_obiekty_modul.artykularne_niespisowe[1]);
if((artykul~="")and((numer_rodzaju_artykulu~=1)or((numer_rodzaju_artykulu==1)and(not czy_okladka))))then
return 1;
elseif(czy_okladka)then
czy_znaleziono_okladka=true;
end;
end;
else
return 0;
end;
end;
end;
local function RozwazajLinieZnacznikowe(zawartosc)
local wartosc;
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(zawartosc,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst)
local function CenterZnacznikLinia(szablon,obiekt,kod)
wartosc=RozwazajLinie(szablon,obiekt,kod);
if(not wartosc)then return;end;
if(wartosc==1)then return nil;end;
return szablon,tekst;
end;
if(obiekt=="SZABLON")then
local szablon,tekst=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local szablon,tekst=CenterZnacznikLinia(szablon,obiekt,kod);
return szablon,tekst;
end);
return szablon,tekst;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
local szablon,tekst=CenterZnacznikLinia(szablon,obiekt,kod);
return szablon,tekst;
end;
end);
for szablon,obiekt,kod in iter do end;
return wartosc;
end;
local szablon_spis_tresci;
local function spis_tresci(wystepowanie_linkow,hn_number)
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(wystepowanie_linkow,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iter do
local function Spis(szablon,obiekt,kod)
local tab_2,numer_rodzaju_artykulu,id,parametry,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,p.__FUNKCJA_KOMPLETOWANIA);
if(not kom)then
local tab=((tab_2 and tab_2[1]) and tab_2 or nil);
if((tab)and(numer_rodzaju_artykulu==1)and(stronicowyparser_analizaaspisurzeczy_modul.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab[1],false))))then
tak_ce_spis_tresci=hn_number;
szablon_spis_tresci=wystepowanie_linkow;
return 1;
end;
else
return 0;
end;
end;
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local wynik=Spis(szablon,obiekt,kod);
if(wynik)then return wynik;end;
end);
if(wynik)then return wynik;end;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
local wynik=Spis(szablon,obiekt,kod);
if(wynik)then return wynik;end;
end;
end;
wystepowanie_linkow=czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(wystepowanie_linkow,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul) or wystepowanie_linkow;
wystepowanie_linkow=mw.text.trim(wystepowanie_linkow);
local czy_ce=jakie_spisy_tresci[wystepowanie_linkow];
if(czy_ce)then
tak_ce_spis_tresci=hn_number;
szablon_spis_tresci=wystepowanie_linkow;
return 1;
end;
end;
local wystepowanie_linkow=mw.ustring.match(linia,"^[#:%*;%d%.>]+%s*(.+)$") or mw.ustring.match(linia,"^(%S+%s*.+)$");
local tak=nil;
if(czy_dalej_rozwazac_zakodowane)then
if(wystepowanie_linkow)then
local czy_rozdzial=nil;local wartosc=nil;
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(wystepowanie_linkow,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst)
local czy_linkw=(obiekt=="LINKW");local czy_linkz=(obiekt=="LINKZ");local czy_szablon=(obiekt=="SZABLON");local czy_znacznik=(obiekt=="ZNACZNIK");
if(czy_linkw or czy_linkz or czy_szablon or czy_znacznik)then
local podrecznik=nil;
if(czy_szablon)then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
-----
local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(czy_ce)then
local szablon_spis_tresci_zawartosc=tabela_parametrow_szablonu[czy_ce];
if(szablon_spis_tresci_zawartosc)then
szablon_spis_tresci_zawartosc=mw.ustring.match(szablon_spis_tresci_zawartosc,"^'*%s*(.-)%s*'*$");
wartosc=spis_tresci(szablon_spis_tresci_zawartosc,true);
else
wartosc=RozwazajLinie(szablon,obiekt,kod);
end;
else
wartosc=RozwazajLinie(szablon,obiekt,kod);
if(wartosc)then podrecznik=true;else podrecznik=false;end;
end;
end);
elseif(czy_znacznik)then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
if(nazwa=="center")then
szablon_spis_tresci=mw.ustring.match(zawartosc,"^'*%s*(.-)%s*'*$");
wartosc=spis_tresci(szablon_spis_tresci,true);
elseif(znaczniki_wprowadzenia_tekstu[nazwa])then
szablon_spis_tresci=mw.ustring.match(zawartosc,"^'*%s*(.-)%s*'*$");
local hn_number=p.HnNumerWprowadzeniaTekstu(nazwa,atrybuty)
wartosc=spis_tresci(szablon_spis_tresci,hn_number);
else
wartosc=RozwazajLinieZnacznikowe(zawartosc);
end;
end;
else
wartosc=RozwazajLinie(szablon,obiekt,kod);
if(wartosc)then podrecznik=true;else podrecznik=false;end;
end;
if(podrecznik==true)then
if(not czy_rozdzial)then
if(wartosc==1)then
local wystepowanie_linku_lub_szablonu=(mw.ustring.match(tekst,"^'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)))
and(not mw.ustring.match(tekst,"^'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."%s*>"))
and (mw.ustring.match(tekst,"^[^%.]*%s*$"));
if(not wystepowanie_linku_lub_szablonu)then return nil;end;
czy_rozdzial=true;
elseif(wartosc==0)then
local ile;
tekst,ile=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod),"");
return "", ((ile>0) and tekst or nil);
end;
end;
elseif(podrecznik==false)then
if(not wartosc)then
if(czy_znaleziono_okladka)then
local czy_nie_uwzgledniac_linii=mw.ustring.match(tekst,"[%s%p]*<[%s<]-%s*'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod));
if(not czy_nie_uwzgledniac_linii)then
local tekst,ile=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod),"");
return "", ((ile>0) and tekst or nil);
else
czy_znaleziono_okladka=false;
end;
else
local tekst,ile=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod),"");
return "", ((ile>0) and tekst or nil);
end;
end;
end;
if(not wartosc)then return;end;
tak=tak or (wartosc==1);
if(tak)then return;end;
return szablon,tekst;
else
local tekst,ile=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod),"");
return "", ((ile>0) and tekst or nil);
end;
end);
for szablon,obiekt,kod in iter do end;
end;
end;
if(tak)then
funkcja1(szablon_spis_tresci);
else
funkcja2();
end;
end
return function()
local tab_str={};
local linia;
local function IterMain()
for linia in iter_main do
local nazwa_rozdzialu;local poziom_rozdzialu;local poczatek_rozdzialu;local numeracja_rozdzialu;local czy_rozdzial_centrowany;
---------------------------------------
nazwa_rozdzialu=mw.ustring.match(linia,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$");
if(nazwa_rozdzialu) then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajNapisPoziomuWprowadzeniaTekstu(nazwa_rozdzialu);
end;
if(not nazwa_rozdzialu)then
if(czy_inne_rozdzialy_analizowac)then
if(not czy_w_spisie_tresci)then
Wystepowanie(linia,function(szablon_spis_tresci)
if(not tak_ce_spis_tresci)then
nazwa_rozdzialu="Spis treści";
poziom_rozdzialu=nil;
table.insert(tab_str,linia);
else
if(szablon_spis_tresci)then
local numeracja,rozdzial=p.NumeracjaOrazTekstWprowadzeniaTekstu(szablon_spis_tresci);
if((numeracja)and(rozdzial))then
numeracja_rozdzialu=numeracja;
nazwa_rozdzialu=rozdzial;
else
nazwa_rozdzialu=szablon_spis_tresci;
numeracja_rozdzialu=nil;
end;
else
nazwa_rozdzialu="Spis treści";
numeracja_rozdzialu=nil;
end;
local czy_rozdzial_naglowka_hn=tonumber(tak_ce_spis_tresci);
poziom_rozdzialu=czy_rozdzial_naglowka_hn or 2;
czy_rozdzial_centrowany=(not czy_rozdzial_naglowka_hn)and true or false;
poczatek_rozdzialu=nil;
--str="";
end;
end,function()
nazwa_rozdzialu=nil;
end);
end;
if(not nazwa_rozdzialu)then
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
end;
else
nazwa_rozdzialu=nil;
end;
end;
if(nazwa_rozdzialu)then
czy_w_spisie_tresci=true;
if(not naglowek_aktualnego_rozdzialu)then
naglowek_aktualnego_rozdzialu=nazwa_rozdzialu;
linia_naglowka_aktualnego_rozdzialu=linia;
poziom_aktualnego_rozdzialu=poziom_rozdzialu;
poczatek_aktualnego_rozdzialu=poczatek_rozdzialu;
numeracja_aktualnego_rozdzialu=numeracja_rozdzialu;
czy_rozdzial_aktualny_centrowany=czy_rozdzial_centrowany;
else
----------------------------------------------
local naglowek_posredni_aktualnego_rozdzialu=naglowek_aktualnego_rozdzialu;
local linia_naglowka_posredni_aktualnego_rozdzialu=linia_naglowka_aktualnego_rozdzialu;
local poziom_posredni_aktualnego_rozdzialu=poziom_aktualnego_rozdzialu;
local poczatek_posredni_aktualnego_rozdzialu=poczatek_aktualnego_rozdzialu;
local numeracja_posredni_aktualnego_rozdzialu=numeracja_aktualnego_rozdzialu;
local czy_rozdzial_posredni_centrowany=czy_rozdzial_aktualny_centrowany;
----------------------------------------------
naglowek_aktualnego_rozdzialu=nazwa_rozdzialu;
linia_naglowka_aktualnego_rozdzialu=linia;
poziom_aktualnego_rozdzialu=poziom_rozdzialu;
poczatek_aktualnego_rozdzialu=poczatek_rozdzialu;
numeracja_aktualnego_rozdzialu=numeracja_rozdzialu;
czy_rozdzial_aktualny_centrowany=czy_rozdzial_centrowany;
local str=table.concat(tab_str,"\n");
if(not __FUNKCJA2)then
naglowek_posredni_aktualnego_rozdzialu=naglowek_posredni_aktualnego_rozdzialu
and (czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(naglowek_posredni_aktualnego_rozdzialu,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul)
or naglowek_posredni_aktualnego_rozdzialu
)
or nil;
str=str and (czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(str,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul) or str) or nil;
elseif(czy_dalej_rozwazac_zakodowane)then
naglowek_posredni_aktualnego_rozdzialu=naglowek_posredni_aktualnego_rozdzialu and __FUNKCJA2(naglowek_posredni_aktualnego_rozdzialu,nil,tablica_analizy_obiektow_strony_dany_modul,true) or nil;
str=str and __FUNKCJA2(str,nil,tablica_analizy_obiektow_strony_dany_modul,false) or nil;
end;
--linia_poprz=nil;
m=m+1;
return {naglowek_posredni_aktualnego_rozdzialu,linia_naglowka_posredni_aktualnego_rozdzialu,},str,poziom_posredni_aktualnego_rozdzialu,poczatek_posredni_aktualnego_rozdzialu,numeracja_posredni_aktualnego_rozdzialu,czy_rozdzial_posredni_centrowany;
end;
else
if(naglowek_aktualnego_rozdzialu)then
table.insert(tab_str,linia);
end;
--linia_poprz=linia;
end;
end;
if(czy_koniec)then return nil;end;
czy_koniec=true;
---
local str=table.concat(tab_str,"\n");
--
if(not __FUNKCJA2)then
naglowek_aktualnego_rozdzialu=naglowek_aktualnego_rozdzialu
and (czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(naglowek_aktualnego_rozdzialu,nil,tablica_analizy_obiektow_strony_dany_modul)
or naglowek_aktualnego_rozdzialu
)
or nil;
str=str and (czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(str,nil,tablica_analizy_obiektow_strony_dany_modul) or str) or nil;
elseif(czy_dalej_rozwazac_zakodowane)then
naglowek_aktualnego_rozdzialu=naglowek_aktualnego_rozdzialu and __FUNKCJA2(naglowek_aktualnego_rozdzialu,nil,tablica_analizy_obiektow_strony_dany_modul,true) or nil;
str=str and __FUNKCJA2(str,nil,tablica_analizy_obiektow_strony_dany_modul,false) or nil;
end;
--linia_nast=nil;linia_poprz=nil;
m=m+1;
return (naglowek_aktualnego_rozdzialu and {naglowek_aktualnego_rozdzialu,linia_naglowka_aktualnego_rozdzialu,} or nil),str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end;
----
local naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany=IterMain();
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
return p;
6l37kcgk2gqxwdy8kdawh1g56ewe6hr
557986
557985
2026-09-29T11:08:24Z
Persino
2851
557986
Scribunto
text/plain
local p={};
function p.NapisWprowadzeniaTekstu(rozdzial,poziom,id)
local naglowek;
poziom=poziom or 1;
poziom=(poziom>0)and poziom or 1;
if(poziom<=6)then
local str_poziom=mw.ustring.rep("=",poziom);
naglowek="\n"..str_poziom..rozdzial..str_poziom.."\n";
else
naglowek="\n<h6 "..(id and ("id=\""..id.."\"") or "").." class=\"mw-hnumber mw-hnumber-"..poziom.."\">"..rozdzial.."</h6>\n";
end;
return naglowek;
end;
function p.NapisWprowadzeniaTekstuHn(rozdzial,poziom,tab_atrybuty)
local naglowek;
poziom=poziom or 1;
poziom=(poziom>0)and poziom or 1;
local atrybuty_wikikod;
if(tab_atrybuty)then
for name,value in pairs(tab_atrybuty)do
value=mw.ustring.gsub(value,"\"","\\\"");
local element=name.."=\""..((name=="class") and ((poziom > 6)and ("mw-hnumber mw-hnumber-"..poziom.." ") or ("mw-hnumber ")) or "")..value.."\"";
atrybuty_wikikod=(atrybuty_wikikod or "")..(atrybuty_wikikod and " " or "")..element;
end;
end;
if((poziom>6)and((not atrybuty_wikikod)or(not tab_atrybuty["class"])))then
atrybuty_wikikod=(atrybuty_wikikod or "")..(atrybuty_wikikod and " " or "").."class=\""..((poziom > 6) and ("mw-hnumber mw-hnumber-"..poziom.." ") or ("")).."\"";
end;
if(poziom<=6)then
local str_poziom=mw.ustring.rep("=",poziom);
naglowek="\n<h"..poziom.." "..(atrybuty_wikikod or "")..">"..rozdzial.."</h"..poziom..">\n";
else
naglowek="\n<h6 "..(atrybuty_wikikod or "")..">"..rozdzial.."</h6>\n";
end;
return naglowek;
end;
function p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego(tekst,zawartosc,obiekt,kod)
if(mw.ustring.match(zawartosc,"\n"))then return false;end;
local szablonowe_modul=require("Module:Szablonowe");
local kod_norma_wzoru_obiektu=szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod);
tekst='\n'..tekst..'\n';
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;
return false;
end;
function p.NapisWprowadzeniaTekstuHNumer(parametr)
local naglowek,poziom=p.PodajNapisPoziomuWprowadzeniaTekstu(parametr);
if(not naglowek)then return nil;end;
if(poziom<=6)then
return "<h"..poziom..">"..naglowek.."</h"..poziom..">";
else
return "<h6 class=\"mw-hnumber mw-hnumber-"..poziom.."\">"..naglowek.."</h6>";
end;
end;
function p.PodajNapisPoziomuWprowadzeniaTekstu(linia)
if(mw.ustring.match(linia,"^%s*=*%s*$"))then
return nil,0;
end;
local rowna_lewy=mw.ustring.match(linia,"^(=+)");
local rowna_prawy=mw.ustring.match(linia,"(=+)%s*$");
if((rowna_lewy)and(rowna_prawy))then
local min_rowna=math.min(#rowna_lewy,#rowna_prawy);
local str_min_rowna=mw.ustring.rep("=",min_rowna);
local naglowek=mw.ustring.match(linia,"^%s*"..str_min_rowna.."([^\n]*[^\n%=][^\n]*)"..str_min_rowna.."%s*$");
if(not naglowek)then
return nil,0;
end;
local naglowek=mw.text.trim(naglowek);
return naglowek,min_rowna;
else
return nil,0;
end;
end;
function p.PodajTekstHNumerNapisuWprowadzeniaTekstu(linia)
local liczba1,zawartosc,liczba2=mw.ustring.match(linia,"<[Hh](%d+)[^<>]*>(.-)</[Hh](%d+)>");
if(not liczba1)then return nil;end;
if((#liczba1==1)and(#liczba2==1)and(liczba1==liczba2))then
local liczba1=tonumber(liczba1);
if(not liczba1)then return nil;end;
if((liczba1<1)or(liczba1>6))then return nil;end;
return zawartosc,liczba1;
end;
return nil;
end;
function p.CzyJestNapisWprowadzeniaTekstu(zawartosc)
return mw.ustring.match(zawartosc,"^=+[^\n]*[^=\n]+[^\n]*=+[^%S\n]*\n")
or mw.ustring.match(zawartosc,"\n=+[^\n]*[^=\n]+[^\n]*=+[^%S\n]*\n")
or mw.ustring.match(zawartosc,"\n=+[^\n]*[^=\n]+[^\n]*=+[^%S\n]*$")
or mw.ustring.match(zawartosc,"^=+[^\n]*[^=\n]+[^\n]*=+[^%S\n]*$");
end;
function p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)
return mw.ustring.match(zawartosc,"^[;%*:#]+")
or mw.ustring.match(zawartosc,"\n[;%*:#]+");
end;
function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)
local czy_naglowek=p.CzyJestNapisWprowadzeniaTekstu(wiersz);
if(czy_naglowek)then return true,true;end;
--czy_naglowek=mw.ustring.match(wiersz,"<[Hh]%d+[^<>]*>(.+)</[Hh]%d+>");
local czy_naglowek=p.PodajTekstHNumerNapisuWprowadzeniaTekstu(wiersz) and true or false;
return czy_naglowek,false;
end;
function p.WierszHNumer(tekst)
local tekst=mw.ustring.gsub(tekst,"(<[Hh](%d+)[^<>]*>)(.-)(</[Hh]%2%s*>)",function(lewy,poziom,tekst,prawy)
poziom=tonumber(poziom) or 0;
if((poziom>=1)and(poziom<=6))then
tekst=mw.ustring.gsub(tekst,"\n"," ");
return "\n"..lewy..tekst..prawy.."\n";
end;
end);
return tekst;
end;
function p.CzyJestJakikolwiekLinkArtykularnyTekstu(tekst,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
-----
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy;
local inne_linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy;
-----
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
-----
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iter do
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if((linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod)))then
return true;
end;
end);
if(wynik)then return wynik;end;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
return true;
--elseif((obiekt=="MATH")or(obiekt=="ŹRÓDŁO"))then
--return true;
end;
end;
return false;
end;
function p.CzyJestInnySpecjalnyTekstowyObiekt(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul)
local szablonowe_modul=require("Module:Szablonowe");
-----
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iter do
if((obiekt=="INNEPRE")or(obiekt=="PRE")or(obiekt=="ŹRÓDŁO")or(obiekt=="MATH")or(obiekt=="GALERIA")or(obiekt=="MAPAOBRAZU"))then
return true;
end;
end;
return false;
end;
function p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja)
local czy=mw.ustring.match(rozdzial_z_numeracja,"^[%d%.]+%s+") or mw.ustring.match(rozdzial_z_numeracja,"^[%d%.]+%s*$");
if(czy)then
local num=mw.ustring.match(rozdzial_z_numeracja,"^([%d%.]+)");
local tab=mw.text.split(num,"%.",false);
if(#tab==1)then
if(mw.ustring.match(num,"^%d+$"))then
return rozdzial_z_numeracja,"";
end;
else
if(tab[#tab]=="")then tab[#tab]=nil;end;
end;
local tak=true;
for i=1,#tab,1 do
tak=tak and mw.ustring.match(tab[i],"^%d+$");
if(not tak)then break;end;
end;
if(tak)then
local numeracja=mw.ustring.match(rozdzial_z_numeracja,"^([%d%.]+)%s*");
local rozdzial_bez_numeracji=mw.ustring.gsub(rozdzial_z_numeracja,"^[%d%.]+%s*","");
return rozdzial_bez_numeracji,numeracja;
end;
end;
return rozdzial_z_numeracja,"";
end;
function p.__FUNKCJA_KOMPLETOWANIA(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local tab_kom=stronicowyparser_obiekty_modul.szablony_kompletowania_stron_woluminu;
return tab_kom[nazwa_szablonu];
end;
function p.UruchamianieAnalizatoraSpisuRzeczyStrony()
return true;
end;
function p.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local rozdzial=mw.ustring.match(linia,"^('+..-:[%s_]-'*)[%s_]*$") or ((not mw.ustring.match(linia,"^%s+"))and(mw.ustring.match(linia,"^(..-:[%s_]-'*)[%s_]*$")));
if(rozdzial)then
return rozdzial,true;
else
local stronicowyparser_analizaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local spis_tresci=stronicowyparser_analizaspisurzeczy_modul.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,true);
if(spis_tresci)then
return linia,true;
else
local rozdzial,main=nil,nil;
if(not mw.ustring.match(linia,"^'+.-[^'%s].-'+.-[^'%s]%s*$"))then
rozdzial,main=mw.ustring.match(linia,"^('+[%s_]*(..-)[%s_]*'*)[%s_]*$");
end;
if(rozdzial)then
local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści");
local rozdzial_main=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(rozdzial,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if(not mw.ustring.match(rozdzial_main,"^.*![%s_]*'*[%s_]*$"))then
if(mw.ustring.match(rozdzial_main,"^[^']-$"))then
if((not mw.ustring.match(rozdzial_main,"^%u[%s_]"))and(not mw.ustring.match(rozdzial_main,"[%s_]%u$")))then
return rozdzial,true;
end;
end;
end;
else
local czy_nie_rozdzial_zerowy=mw.ustring.match(linia,"%.%s*$");
if(czy_nie_rozdzial_zerowy)then return linia,false;end;
end;
return nil;
end;
end;
end;
function p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,z_parametrami_linkowymi,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
if((not przedrotek_listy)or(#przedrotek_listy==0))then return false;end;
local czy_dwukropki=mw.ustring.match(przedrotek_listy,"^:+$");
if(not czy_dwukropki)then return false;end;
local czy_miedzy_cudzyslowami=mw.ustring.match(linia,"^%s*''+.+'*%s*$");
if(not czy_miedzy_cudzyslowami)then return false;end;
if(not z_parametrami_linkowymi)then return true;end;
local szablonowe_modul=require("Module:Szablonowe");
local czy_sa_kody=mw.ustring.match(linia,szablonowe_modul.NormaWzoruKodowaniaTekstu());
if(not czy_sa_kody)then return true;end;
local szablonowe_modul=require("Module:Szablonowe");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
if((obiekt=="SZABLON")or(obiekt=="LINKW"))then
local tab_pozycja_elementow_w_spisie_rzeczy,numer_rodzaju_artykulu,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,nil);
if((tab_pozycja_elementow_w_spisie_rzeczy)and(numer_rodzaju_artykulu==1))then
return false;
end;
end;
end;
return true;
end;
function p.HnNumerWprowadzeniaTekstu(nazwa,atrybuty)
local stronicowyparser_obiekty_modul=mw.loadData('Module:StronicowyParser/obiekty');
local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu;
local numer_rozdzialu=znaczniki_wprowadzenia_tekstu[nazwa];
if((atrybuty)and(numer_rozdzialu>=6))then
local klasa=atrybuty["class"];
if(klasa)then
local mw_hnumber_liczba=mw.ustring.match(klasa,"^%s*mw%-hnumber%-(%d+)%s*$")
or mw.ustring.match(klasa,"^%s*mw%-hnumber%-(%d+)%s+")
or mw.ustring.match(klasa,"%s+mw%-hnumber%-(%d+)%s+")
or mw.ustring.match(klasa,"%s+mw%-hnumber%-(%d+)%s*$");
mw_hnumber_liczba=tonumber(mw_hnumber_liczba) or 6;
mw_hnumber_liczba=(mw_hnumber_liczba>6) and mw_hnumber_liczba or 6;
numer_rozdzialu=mw_hnumber_liczba or numer_rozdzialu;
end;
end;
return numer_rozdzialu;
end;
function p.NumeracjaOrazTekstWprowadzeniaTekstu(zawartosc)
local numeracja,rozdzial=mw.ustring.match(zawartosc,"^%s*([%d%.]*)%s*(.-)%s*$");
return numeracja,rozdzial;
end;
function p.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
local zacznij;local wprowadzenie;local zawsze=false;local ostatnie=false;local bez_kropki=nil;local spac=nil;local nie_rozdzial=nil;local nie_numerowany=nil;
local stronicowyparser_obiekty_modul=mw.loadData('Module:StronicowyParser/obiekty');
local parametry_modul=require("Module:Parametry");
local szablonowe_modul=require("Module:Szablonowe");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści");
local stronicowyparser_analizaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local techniczne_modul=require("Module:Techniczne");
local specjalne_modul=require("Module:Specjalne");
local strony_modul=require("Module:Strony");
local szablony_wprowadzenia_napisu_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy;
local linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy;
local inne_linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy;
local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu;
local maksymalny_rozmiar_rozdzialu_zerowego=70;
return function(linia,tak_ce_spis_tresci)
----
local rozdzial=nil;local numeracja=nil;
local poczatek,rozdzial_z_numeracja=mw.ustring.match(linia,"^([#:%*;]+)%s*('*%s*[%d%.]*%s*.-%s*'*)%s*$");
local rozdzial_z_numeracja_nie_przetworzone=nil;
-----
----
if(not poczatek and not rozdzial_z_numeracja)then
rozdzial_z_numeracja=mw.ustring.match(linia,"^([%d%.]+%s*.-)%s*$") or mw.ustring.match(linia,"^'+(%s*[%d%.]+%s*.-)%s*'*%s*$")
if(rozdzial_z_numeracja)then
poczatek="";
rozdzial_z_numeracja=specjalne_modul["UsuńZnakiSpecjalne"](rozdzial_z_numeracja);
rozdzial_z_numeracja=mw.ustring.gsub(rozdzial_z_numeracja,"^(%s+)","");
rozdzial_z_numeracja=mw.ustring.gsub(rozdzial_z_numeracja,"(%s+)$","");
rozdzial,numeracja=p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja);
else
local function LiniaCydzyslow(linia)
local linia_wew_cudz=mw.ustring.match(linia,"^'+%s*(.-[^']+.-)%s*'+%s*$")
if(not linia_wew_cudz)then return false;end;
return not (mw.ustring.match(linia_wew_cudz,'^%u[%u%s]*$')
and((mw.ustring.match(linia_wew_cudz,"%s%u%s"))or(mw.ustring.match(linia_wew_cudz,"^%u%s"))or(mw.ustring.match(linia_wew_cudz,"%s%u$"))))
end;
if(LiniaCydzyslow(linia))then
rozdzial=linia;
poczatek="";
numeracja="";
else
local url_iter=mw.ustring.gmatch(linia,"(%S+)");
local czy_rozdzial=false;
for url in url_iter do
czy_rozdzial=czy_rozdzial or strony_modul.SprawdzanieURL(url);
if(czy_rozdzial)then
break;
end;
end;
if(czy_rozdzial)then
poczatek="";
numeracja="";
rozdzial=linia;
end;
end;
end;
else
rozdzial_z_numeracja_nie_przetworzone=rozdzial_z_numeracja;
rozdzial_z_numeracja=specjalne_modul["UsuńZnakiSpecjalne"](rozdzial_z_numeracja);
rozdzial_z_numeracja=mw.ustring.gsub(rozdzial_z_numeracja,"^(%s+)","");
rozdzial_z_numeracja=mw.ustring.gsub(rozdzial_z_numeracja,"(%s+)$","");
rozdzial,numeracja=p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja);
end;
local ze_specialnymi_obiektami=((rozdzial) and true or false);local czy_centrowanie=false;local czy_znaczniki_hn=false;local tekst;
local nazwa,zawartosc,atrybuty;
if(rozdzial)then tekst=rozdzial;else tekst=linia;end;
----
local function WykluczenieNieodpowiednichNormSzablonowych(rozdzial)
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(rozdzial,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
if((obiekt=="GALERIA")or(obiekt=="ŹRÓDŁO")or(obiekt=="PRE")or(obiekt=="INNEPRE")or(obiekt=="WIKITABELA")or(obiekt=="MAPAOBRAZU"))then
return nil;
elseif(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(stronicowyparser_obiekty_modul.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego[nazwa_szablonu])then
return true;
end;
end);
if(wynik)then return nil;end;
end;
end;
return true;
end;
local FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu=function(wartosc)
if(mw.ustring.match(wartosc,"^%s*%d+%s*/%s*%d+%s*$"))then return nil;end;
if(mw.ustring.match(wartosc,"!%s*'*%s*$"))then return nil;end;
numeracja,rozdzial=p.NumeracjaOrazTekstWprowadzeniaTekstu(wartosc);
if(rozdzial)then
local wynik=WykluczenieNieodpowiednichNormSzablonowych(rozdzial);
if(not wynik)then
numeracja=nil;rozdzial=nil;
return nil;
end;
end;
end;
local function NiestardardoweSzablonoweWprowdzeniaTekstu(szablon,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(czy_ce)then
local wartosc=tabela_parametrow_szablonu[czy_ce];
if(wartosc)then
return FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu(wartosc);
end;
return nil;
end;
end;
local function NiestardardoweZnacznikoweWprowdzeniaTekstu(szablon,nazwa,zawartosc,atrybuty)
if(zawartosc)then
if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
return FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu(zawartosc);
end;
end;
return nil;
end;
----
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
---
local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(czy_ce)then
ze_specialnymi_obiektami=true;
czy_centrowanie=true;
NiestardardoweSzablonoweWprowdzeniaTekstu(szablon,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow);
--if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
return true;
elseif((linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod)))then
ze_specialnymi_obiektami=true;
if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
return true;
end;
end);
if(wynik)then return;end;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
ze_specialnymi_obiektami=true;
return nil;
elseif((obiekt=="PRE")or(obiekt=="MATH")or(obiekt=="ŹRÓDŁO")or(obiekt=="INNEPRE"))then
if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
ze_specialnymi_obiektami=true;
return nil;
elseif(obiekt=="ZNACZNIK")then
nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
if(nazwa=="center")then
ze_specialnymi_obiektami=true;
czy_centrowanie=true;
NiestardardoweZnacznikoweWprowdzeniaTekstu(szablon,nazwa,zawartosc,atrybuty);
--if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
return nil;
elseif(znaczniki_wprowadzenia_tekstu[nazwa])then
ze_specialnymi_obiektami=true;
czy_znaczniki_hn=true;
NiestardardoweZnacznikoweWprowdzeniaTekstu(szablon,nazwa,zawartosc,atrybuty);
return nil;
end;
end;
end;
return szablon;
end);
for szablon,obiekt,kod in iter do end;
rozdzial=rozdzial and parametry_modul["Odstępy"](rozdzial) or nil;
poczatek=poczatek and parametry_modul["Odstępy"](poczatek) or nil;
numeracja=numeracja and parametry_modul["Odstępy"](numeracja) or nil;
if(not ze_specialnymi_obiektami)then
local rozdzial,czy_standardowe_rozdzialy=p.CzyZerowyNapisWprowadzeniaTekstu(rozdzial or linia,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if((rozdzial)and(czy_standardowe_rozdzialy))then
if(#rozdzial<=maksymalny_rozmiar_rozdzialu_zerowego)then
if(not mw.ustring.match(rozdzial,"^.+[%.%;!,%?]%s*'+%s*$"))then
return linia,rozdzial,0,nil,numeracja;
else
return nil;
end;
else
local czy_poczatek_niepusty=parametry_modul.CzyTak(poczatek);
local czy_numeracja_niepusta=parametry_modul.CzyTak(numeracja);
if(((not czy_poczatek_niepusty)or(#poczatek==0))and((not czy_numeracja_niepusta)or(#numeracja==0)))then
return nil;
elseif(not mw.ustring.match(rozdzial,"^.+[%.%;!,%?]%s*'+%s*$"))then
return linia,rozdzial,0,nil,numeracja;
else
return nil;
end;
end;
else
return nil;
end;
elseif(czy_centrowanie)then
if(tak_ce_spis_tresci)then
if((rozdzial)and(numeracja))then
if((not parametry_modul.CzyTak(numeracja))and(not parametry_modul.CzyTak(rozdzial)))then
return nil,nil,nil,nil;
end;
return linia,rozdzial,2,nil,numeracja,true;
end;
end;
return nil;
elseif(czy_znaczniki_hn)then
if((rozdzial)and(numeracja))then
if((not parametry_modul.CzyTak(numeracja))and(not parametry_modul.CzyTak(rozdzial)))then
return nil,nil,nil,nil;
end;
local numer_rozdzialu=p.HnNumerWprowadzeniaTekstu(nazwa,atrybuty);
return linia,rozdzial,numer_rozdzialu,nil,numeracja;
end;
elseif(rozdzial)then
local czy_numeracja_niepusta=parametry_modul.CzyTak(numeracja);
local czy_rozdzial_niepusty=parametry_modul.CzyTak(rozdzial);
if((not czy_numeracja_niepusta)and(not czy_rozdzial_niepusty))then
return nil;
end;
if(#rozdzial<=maksymalny_rozmiar_rozdzialu_zerowego)then
local czy_pominac_ten_rozdzial_jako_rozdzial=rozdzial_z_numeracja_nie_przetworzone and p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(poczatek,rozdzial_z_numeracja_nie_przetworzone,false,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) or nil;
if(not czy_pominac_ten_rozdzial_jako_rozdzial)then
if((#poczatek>0)or(not mw.ustring.match(rozdzial,"^.+[%.%;!,%?]%s*'+%s*$")))then
return linia,rozdzial,(#poczatek*(-1)),poczatek,numeracja;
else
return nil;
end;
else
return nil;
end;
else
local czy_poczatek_niepusty=parametry_modul.CzyTak(poczatek);
if(((not czy_poczatek_niepusty)or(#poczatek==0))and((not czy_numeracja_niepusta)or(#numeracja==0)))then
return nil;
else
local czy_pominac_ten_rozdzial_jako_rozdzial=rozdzial_z_numeracja_nie_przetworzone and p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(poczatek,rozdzial_z_numeracja_nie_przetworzone,false,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) or nil;
if(not czy_pominac_ten_rozdzial_jako_rozdzial)then
if((#poczatek>0)or(not mw.ustring.match(rozdzial,"^.+[%.%;!,%?]%s*'+%s*$")))then
return linia,rozdzial,(#poczatek*(-1)),poczatek,numeracja;
else
return nil;
end;
else
return nil;
end;
end;
end;
else
return nil;
end;
return nil;
end;
end;
function p.TekstPoNapisieWprowadzeniaTekstuStrony(frame)
local strona=frame.args[1];
local id_rozdzialu1=frame.args[2] or "";
local id_rozdzialu2=frame.args[3] or "";
strona=frame:preprocess(strona);
local title=mw.title.makeTitle('',strona);
if((not title)or(not title.exists))then
return nil;
end;
local tekst=title:getContent();
if(not tekst)then return nil;end;
return p.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2);
end;
function p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(tekst)
tekst=mw.ustring.gsub(tekst,"^[%s_]+","");
tekst=mw.ustring.gsub(tekst,"[%s_]+$","");
tekst=mw.ustring.gsub(tekst,"[%s_]+","_");
return tekst;
end;
function p.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony(frame)
local strona=frame.args[1];
local id_rozdzialu=frame.args[2] or "";
strona=frame:preprocess(strona);
local title=mw.title.makeTitle('',strona);
if((not title)or(not title.exists))then
return nil;
end;
local tekst=title:getContent();
if(not tekst)then return nil;end;
id_rozdzialu=frame:preprocess(id_rozdzialu);
local specjalne_modul=require("Module:Specjalne");
id_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](id_rozdzialu);
id_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(id_rozdzialu);
local html_modul=require("Module:Html");
id_rozdzialu=html_modul.DecodeKoduHTMLZnaku(id_rozdzialu);
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
--tekst=mw.ustring.gsub(tekst,"\n\n","\n\n");
tekst=p.WierszHNumer(tekst);
local szeregi_modul=require("Module:Szeregi");
local iter=szeregi_modul.IteratorLiniiTekstu(tekst);
local tab_rozdzialy={};
local specjalne_modul=require("Module:Specjalne");
for wiersz in iter do
local czy_naglowek,czy_naglowek_wiki=p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz);
if(czy_naglowek)then
local nazwa_rozdzialu,poziom_rozdzialu;
if(czy_naglowek_wiki)then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajNapisPoziomuWprowadzeniaTekstu(wiersz);
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajTekstHNumerNapisuWprowadzeniaTekstu(wiersz);
end;
nazwa_rozdzialu=frame:preprocess(nazwa_rozdzialu);
local nazwa_rozdzialu_aktualna=nazwa_rozdzialu;
nazwa_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](nazwa_rozdzialu);
nazwa_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(nazwa_rozdzialu);
nazwa_rozdzialu=html_modul.DecodeKoduHTMLZnaku(nazwa_rozdzialu);
local c=1;
for i=1,#tab_rozdzialy,1 do
if(tab_rozdzialy[i]==nazwa_rozdzialu)then
c=c+1;
end;
end;
if(c>1)then
nazwa_rozdzialu=nazwa_rozdzialu.."_"..c;
end;
table.insert(tab_rozdzialy,nazwa_rozdzialu);
if(id_rozdzialu==nazwa_rozdzialu)then
return nazwa_rozdzialu_aktualna;
end;
end;
end;
return nil;
end;
function p.NumerSekcjiStrony(frame)
local strona=frame.args[1];
local id_rozdzialu=frame.args[2] or "";
strona=frame:preprocess(strona);
local title=mw.title.makeTitle('',strona);
if((not title)or(not title.exists))then
return nil;
end;
local tekst=title:getContent();
if(not tekst)then return nil;end;
id_rozdzialu=frame:preprocess(id_rozdzialu);
local specjalne_modul=require("Module:Specjalne");
id_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](id_rozdzialu);
id_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(id_rozdzialu);
local html_modul=require("Module:Html");
id_rozdzialu=html_modul.DecodeKoduHTMLZnaku(id_rozdzialu);
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
--tekst=mw.ustring.gsub(tekst,"\n\n","\n\n");
tekst=p.WierszHNumer(tekst);
local szeregi_modul=require("Module:Szeregi");
local iter=szeregi_modul.IteratorLiniiTekstu(tekst);
local tab_rozdzialy={};
local ile=1;
for wiersz in iter do
local czy_naglowek,czy_naglowek_wiki=p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz);
if(czy_naglowek)then
local nazwa_rozdzialu,poziom_rozdzialu;
if(czy_naglowek_wiki)then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajNapisPoziomuWprowadzeniaTekstu(wiersz);
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajTekstHNumerNapisuWprowadzeniaTekstu(wiersz);
end;
nazwa_rozdzialu=frame:preprocess(nazwa_rozdzialu);
nazwa_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](nazwa_rozdzialu);
nazwa_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(nazwa_rozdzialu);
nazwa_rozdzialu=html_modul.DecodeKoduHTMLZnaku(nazwa_rozdzialu);
local c=1;
for i=1,#tab_rozdzialy,1 do
if(tab_rozdzialy[i]==nazwa_rozdzialu)then
c=c+1;
end;
end;
if(c>1)then
nazwa_rozdzialu=nazwa_rozdzialu.."_"..c;
end;
table.insert(tab_rozdzialy,nazwa_rozdzialu);
if(id_rozdzialu==nazwa_rozdzialu)then
return ile;
end;
ile=ile+1;
end
end;
return nil;
end;
function p.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2)
local frame=mw.getCurrentFrame();
local specjalne_modul=require("Module:Specjalne");
local html_modul=require("Module:Html");
id_rozdzialu1=frame:preprocess(id_rozdzialu1);
id_rozdzialu1=specjalne_modul["WydzielZwykłyTekst"](id_rozdzialu1);
id_rozdzialu1=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(id_rozdzialu1);
id_rozdzialu1=html_modul.DecodeKoduHTMLZnaku(id_rozdzialu1);
id_rozdzialu2=frame:preprocess(id_rozdzialu2);
id_rozdzialu2=specjalne_modul["WydzielZwykłyTekst"](id_rozdzialu2);
id_rozdzialu2=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(id_rozdzialu2);
id_rozdzialu2=html_modul.DecodeKoduHTMLZnaku(id_rozdzialu2);
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
--tekst=mw.ustring.gsub(tekst,"\n\n","\n\n");
tekst=p.WierszHNumer(tekst);
local szeregi_modul=require("Module:Szeregi");
local iter=szeregi_modul.IteratorLiniiTekstu(tekst);
local tab_rozdzialy={};
local str=""
local nazwa_rozdzialu_aktualna;
local poziom_rozdzialu_aktualny;
for wiersz in iter do
local czy_naglowek,czy_naglowek_wiki=p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz);
if(czy_naglowek)then
local nazwa_rozdzialu,poziom_rozdzialu;
if(czy_naglowek_wiki)then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajNapisPoziomuWprowadzeniaTekstu(wiersz);
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajTekstHNumerNapisuWprowadzeniaTekstu(wiersz);
end;
nazwa_rozdzialu=frame:preprocess(nazwa_rozdzialu);
nazwa_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](nazwa_rozdzialu);
nazwa_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(nazwa_rozdzialu);
nazwa_rozdzialu=html_modul.DecodeKoduHTMLZnaku(nazwa_rozdzialu);
local c=1;
for i=1,#tab_rozdzialy,1 do
if(tab_rozdzialy[i]==nazwa_rozdzialu)then
c=c+1;
end;
end;
if(c>1)then
nazwa_rozdzialu=nazwa_rozdzialu.."_"..c;
end;
table.insert(tab_rozdzialy,nazwa_rozdzialu);
if(((nazwa_rozdzialu_aktualna)and(nazwa_rozdzialu_aktualna==id_rozdzialu1))
and((((id_rozdzialu2=="")or(not id_rozdzialu2))and(poziom_rozdzialu<=poziom_rozdzialu_aktualny))or(nazwa_rozdzialu==id_rozdzialu2)))then
return str;
end;
if((id_rozdzialu1~="")and(nazwa_rozdzialu==id_rozdzialu1))then
nazwa_rozdzialu_aktualna=nazwa_rozdzialu;
poziom_rozdzialu_aktualny=poziom_rozdzialu;
str="";
elseif(id_rozdzialu1=="")then
nazwa_rozdzialu_aktualna="";
poziom_rozdzialu_aktualny=0;
if(id_rozdzialu2=="")then
return str;
elseif(nazwa_rozdzialu==id_rozdzialu2)then
return str;
else
str=(str~="")and (str.."\n"..wiersz) or wiersz;
end;
else
str=(str~="")and (str.."\n"..wiersz) or wiersz;
end;
else
str=(str~="")and (str.."\n"..wiersz) or wiersz;
end;
end;
if((id_rozdzialu1)and(id_rozdzialu1==""))then
return str;
elseif((nazwa_rozdzialu_aktualna)and(nazwa_rozdzialu_aktualna==id_rozdzialu1))then
return str;
end;
return "";
end;
function p.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-5];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy;
end;
end;
end;
local szablonowe_modul=require("Module:Szablonowe");
----
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local ktore=szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu[nazwa_szablonu];
if(not ktore)then return;end;
local tab=mw.text.split(tostring(ktore),"%s*;%s*",false);
local wynik="";
for _,num in pairs(tab)do
local numer_parametru=tonumber(num) or num;
for parametr,wartosc in pairs(tabela_parametrow_szablonu)do
if(parametr==numer_parametru)then
wynik=(wynik or "")..wartosc;
end;
end;
end;
return wynik;
end);
if((tablica_danych_parametrow_szablonu_strony)and(kod)and(wynik))then
if(not tablica_danych_parametrow_szablonu_strony[-5])then tablica_danych_parametrow_szablonu_strony[-5]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-5];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy=wynik;
end;
return wynik;
end;
function p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-6];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy;
end;
end;
end;
local szablonowe_modul=require("Module:Szablonowe");
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local szablony_z_dodatkiem_obiektowym=stronicowyparser_obiekty_modul.szablony_z_dodatkiem_obiektowym;
local dodatek=szablony_z_dodatkiem_obiektowym[nazwa_szablonu];
if(dodatek)then
local techniczne_modul=require("Module:Techniczne");
for name,value in pairs(tabela_parametrow_szablonu)do
local name=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](name);
local value=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](value);
dodatek=mw.ustring.gsub(dodatek,"%$%("..name.."%)",value);
end;
return dodatek;
end;
end);
if((tablica_danych_parametrow_szablonu_strony)and(kod)and(wynik))then
if(not tablica_danych_parametrow_szablonu_strony[-6])then tablica_danych_parametrow_szablonu_strony[-6]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-6];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy=wynik;
end;
return wynik;
end;
function p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_modul=require("Module:Techniczne");
tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
return "\n\n ";
end,nil,nil,
function(szablon,obiekt,kod,poziom_iteracji)
if(poziom_iteracji==0)then
if(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((nazwa=="br")or(nazwa=="hr"))then
return true;
end;
elseif(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
----
if((nazwa_szablonu=="Br")or(nazwa_szablonu=="Hr"))then
return true;
end;
end);
if(wynik)then return wynik;end;
end;
end;
return nil;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
return tekst;
end;
function p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_obiektow_strony_dany_modul_uzyskany,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)
local CzySpecjalnaLinia=function(linia)
local czy_specjalna_linia=mw.ustring.match(linia,"^[%*,;:#]+") or mw.ustring.match(linia,"^%s*$") or mw.ustring.match(linia,"^%-%-%-%-");
if(not czy_specjalna_linia)then
if(mw.ustring.match(linia,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$"))then
return true;
end;
end;
return czy_specjalna_linia;
end;
----
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_modul=require("Module:Techniczne");
local CzyLiniaZeSpecjalnymiSzablonami=function(linia)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local szablony_w_nie_w_tej_samej_linii=stronicowyparser_obiekty_modul.szablony_w_nie_w_tej_samej_linii;
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,pelna_nazwa_spisu_tresci,tablica_obiektow_strony_dany_modul_uzyskany);
for szablon,obiekt,kod in iterator do
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(szablony_w_nie_w_tej_samej_linii[nazwa_szablonu])then
return true;
end;
end);
if(wynik)then return wynik;end;
end;
end;
return nil;
end;
----
--tekst=p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,tablica_obiektow_strony_dany_modul_uzyskany,tablica_danych_parametrow_szablonu_strony);
----
local tab_linie_tekstu=mw.text.split(tekst,"\n");
if(#tab_linie_tekstu==0)then return "";end;
local tekst_nowy=tab_linie_tekstu[1];
local czy_linia_poprz=CzySpecjalnaLinia(tekst_nowy) or CzyLiniaZeSpecjalnymiSzablonami(tekst_nowy);
if(not czy_linia_poprz)then
tekst_nowy=p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst_nowy,pelna_nazwa_spisu_tresci,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;
for i=2,#tab_linie_tekstu,1 do
local linia=tab_linie_tekstu[i];
local aktualna_specjalna_linia=CzySpecjalnaLinia(linia) or CzyLiniaZeSpecjalnymiSzablonami(linia);
if(not aktualna_specjalna_linia)then
linia=p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(linia,pelna_nazwa_spisu_tresci,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;
if((not czy_linia_poprz)and(not aktualna_specjalna_linia))then
--local czy_wprowadzenie=mw.ustring.match(linia,"^>")
local tekst_nowy2=mw.ustring.match(tekst_nowy,"^(.*\n)[^%S\n]*\n[^%S\n]*$");
tekst_nowy=(tekst_nowy2 or tekst_nowy)..((tekst_nowy2) and "" or " ")..linia;
else
tekst_nowy=tekst_nowy.."\n"..linia;
end;
czy_linia_poprz=aktualna_specjalna_linia;
end;
return tekst_nowy;
end;
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_inne_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
local nazwy_modul=require("Module:Nazwy");
tablica_analizy_obiektow_strony_dany_modul=tablica_analizy_obiektow_strony_dany_modul or {};
tablica_danych_parametrow_szablonu_strony=tablica_danych_parametrow_szablonu_strony or {};
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local stronicowyparser_analizaaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local szablony_wprowadzenia_napisu_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy;
local szablonowe_modul=require("Module:Szablonowe");
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local html_modul=require("Module:Html");
local szeregi_modul=require("Module:Szeregi");
local szablony_do_usuwania_z_tekstu=stronicowyparser_obiekty_modul.szablony_do_usuwania_z_tekstu;
local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej=(nazwa_przestrzeni and nazwa_przestrzeni_ksiazki and nazwa_ksiazki and nazwa_spisu_tresci)
and nazwy_modul["NazwaModułu"](((nazwy_np_modul.Template~=nazwa_przestrzeni) and (nazwa_przestrzeni) or ""),nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci)
or nil;
local pelna_nazwa_spisu_tresci_szablonowa=((pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej)and(((nazwa_przestrzeni=="") and ":" or "")..pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej) or nil);
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;
local __FUNKCJA_OPERACJE_USUWANIE_BAZOWE=function(szablon,obiekt,kod,poziom_iteracji)
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil;
end;
--local tab_nazwa_spisow_przekierowaniowych={};
if(czy_dalej_rozwazac_zakodowane)then
----
local szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu=stronicowyparser_obiekty_modul.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu;
local tab_szablony_bez_generowania_napisowego=stronicowyparser_obiekty_modul.szablony_bez_generowania_napisowego;
local szablony_nie_typowo_linkowe=stronicowyparser_obiekty_modul.szablony_nie_typowo_linkowe;
local znaczniki_szablonowe=stronicowyparser_obiekty_modul.znaczniki_szablonowe;
local szablony_sztucznego_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_sztucznego_wprowadzenia_tekstu;
----
local function UsuwanieNowychLiniiZnacznikowe(szablon)
local tak=nil;
szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
-----
if((nazwa_szablonu=="Br")or(nazwa_szablonu=="Hr"))then
if(poziom_iteracji==0)then tak=true;end;
return " ";
end;
end);
if(wynik)then return wynik,nil,true;end;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((nazwa=="br")or(nazwa=="hr"))then
if(poziom_iteracji==0)then tak=true;end;
return " ",nil,true;
end;
end;
return nil,true;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
return szablon,tak;
end;
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)
local czy_tak=false;
local szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(czy_ce)then
local szablon_spis_tresci_zawartosc=tabela_parametrow_szablonu[czy_ce];
if(szablon_spis_tresci_zawartosc)then
czy_tak=czy_tak or true;
return szablon_spis_tresci_zawartosc;
end;
end;
return nil;
end);
if(wynik)then return wynik,nil,true;end;
return nil,true;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
czy_tak=czy_tak or true;
return zawartosc,nil,true;
end;
end;
end;
return nil,true;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
return szablon,czy_tak;
end;
local Modyfikacja=function(szablon,obiekt,kod)
local czy_tak=false;
local szablon,czy_tak1=UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu(szablon,obiekt,kod);
czy_tak=czy_tak or czy_tak1;
local szablon,czy_tak2=UsuwanieNowychLiniiZnacznikowe(szablon);
czy_tak=czy_tak or czy_tak2;
local szablon,ile=mw.ustring.gsub(szablon,"\n"," ");
czy_tak=czy_tak or (ile>0);
return szablon,czy_tak;
end;
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)
if(obiekt=="SZABLON")then
local tabela_parametrow_szablonu=parametr1;
local nazwa_szablonu=parametr2;
local tabela_modyfikatorow=parametr3;
if(szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu])then
local wynik,czy_tak=Modyfikacja(szablon,obiekt,kod);
if(not czy_tak)then return nil,true;end;
return wynik,true;
end;
elseif(obiekt=="ZNACZNIK")then
local nazwa=parametr1;
local zawartosc=parametr2;
local tab_atrybuty=parametr3;
if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
local wynik,czy_tak=Modyfikacja(szablon,obiekt,kod);
if(not czy_tak)then return nil,true;end;
return wynik,true;
end;
end;
end;
----
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
---
--local tab_nazwa_spisow_przekierowaniowych={};
---
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)
local spacja=" ";
local tab_spacja={
["nbsp"]=spacja,
["#32"]=spacja,
["#x20"]=spacja,
};
komorka=mw.ustring.gsub(komorka,"&([^&;]+);",tab_spacja);
local komorka_stara=komorka;
if(not nie_trimowanie)then
komorka=mw.text.trim(komorka);
end;
if(mw.ustring.match(komorka_stara,"^%s*[#%*:;>]"))then komorka=" "..komorka;end;
return ((not nie_trimowanie)and ("\n\n"..komorka.."\n") or komorka);
end;
----
local function ZamienNaKody(zawartosc,czy_szablon)
local function Linie(wzor)
zawartosc=mw.ustring.gsub(zawartosc,wzor,function(a,b)
return "&#"..mw.ustring.byte(a)..";"..(b or "");
end);
end;
if(not (mw.ustring.sub(zawartosc,1,1)=="\n"))then
Linie("^([=%*#:;])");
end;
local len=mw.ustring.len(zawartosc);
if(not (mw.ustring.sub(zawartosc,len,len)=="\n"))then
Linie("([=])([^%S\n]*)$");
end;
return zawartosc;
end;
tekst_rozwiniety_calego_artykulu=szablonowe_modul:KodowanieNiezakodowanychNormKodowychReferencjiTekstu(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,false,function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)
if(obiekt=="SZABLON")then
local tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=parametr1,parametr2,parametr3;
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local numer_parametru=szablony_sztucznego_wprowadzenia_tekstu[nazwa_szablonu];
if(numer_parametru)then
local parametr=tabela_parametrow_szablonu[numer_parametru];
if(parametr)then
local czy_modyfikacja=false;
szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa=="div")then
if(p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego(parametr,zawartosc,obiekt,kod))then
czy_modyfikacja=true;
return zawartosc and ZamienNaKody(PrzetwarzanieZnacznikowe(zawartosc,true),false) or "";
end;
end;
end;
return nil,true;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
if(czy_modyfikacja)then
return szablon;
end;
end;
end;
local function AnalizaSzablonu(szablon)
local wynik=p.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
if(wynik)then return wynik;end;
if(szablony_do_usuwania_z_tekstu[nazwa_szablonu])then return "";end;
local czy_szablony_bez_generowania_napisowego=tab_szablony_bez_generowania_napisowego[nazwa_szablonu];
if(czy_szablony_bez_generowania_napisowego)then return "";end;
if(szablony_nie_typowo_linkowe[nazwa_szablonu])then return "";end;
--if(mw.ustring.match(nazwa_szablonu,"/"))then return "";end;
end;
local szablon2=AnalizaSzablonu(szablon);
if(szablon2)then return szablon2;end;
local czy_center;
szablon,czy_center=UsuwanieZnacznikowe(szablon2 or szablon,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) or szablon2;
if(szablon)then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=nil;
end;
end;
local wynik,tabela_parametrow_szablonu=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local szablon_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(szablon_ce)then
local zawartosc=tabela_parametrow_szablonu[szablon_ce];
if((zawartosc)and(p.CzyJestNapisWprowadzeniaTekstu(zawartosc) or p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)))then
return zawartosc,tabela_parametrow_szablonu;
end;
end;
return nil,tabela_parametrow_szablonu;
end);
if(wynik)then return wynik;end;
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
return nil;
elseif(czy_center)then
local szablon_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(szablon_ce)then
local zawartosc=tabela_parametrow_szablonu[szablon_ce];
if((zawartosc)and(p.CzyJestNapisWprowadzeniaTekstu(zawartosc) or p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)))then
return zawartosc;
else
return nil;
end;
else
return nil;
end;
end;
local znacznik_numer=znaczniki_szablonowe[nazwa_szablonu];
if(znacznik_numer)then
local parametr=tabela_parametrow_szablonu[znacznik_numer];
if(parametr)then
return ZamienNaKody(parametr,true);
end;
end;
end;
local wynik=FuncSzablon(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow);
if(wynik)then return wynik,nil,true;end;
return nil,true;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,atrybuty=parametr1,parametr2,parametr3;
if((nazwa~="center")and(not znaczniki_wprowadzenia_tekstu[nazwa]))then
if((nazwa~="ref")and(nazwa~="br")and(nazwa~="hr"))then
local fun=function()
if(nazwa~="div")then
return zawartosc and ZamienNaKody(PrzetwarzanieZnacznikowe(zawartosc,true),false) or "";
elseif((zawartosc)and(zawartosc~=""))then
if(not p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego(tekst,zawartosc,obiekt,kod))then
local ile1;local ile2;
zawartosc,ile1=mw.ustring.gsub(zawartosc,"^([^\n]+\n)",function(s)
if(not mw.ustring.match(s,"^%s*$"))then return PrzetwarzanieZnacznikowe(s,true).."\n\n";end;
return "\n";
end);
zawartosc,ile2=mw.ustring.gsub(zawartosc,"([^\n]+)$",function(s)
if(not mw.ustring.match(s,"^%s*$"))then return "\n\n"..s;end;
return "";
end);
return ZamienNaKody(zawartosc,false);
else
return zawartosc and ZamienNaKody(PrzetwarzanieZnacznikowe(zawartosc,true),false) or "";
end;
else
return "";
end;
end;
return fun,nil,true;
end;
else
if((zawartosc)and(p.CzyJestNapisWprowadzeniaTekstu(zawartosc) or p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)))then
return zawartosc,nil,true;
end;
local szablon,czy_center=UsuwanieZnacznikowe(szablon,obiekt,kod,nazwa,zawartosc,atrybuty);
if(szablon)then
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[100];
if(tablica_danych_parametrow_szablonu_strony_numer)then
tablica_danych_parametrow_szablonu_strony_numer[kod]=nil;
end;
end;
end;
return nil,true;
elseif(obiekt=="INNEPRE")then
if(mw.ustring.match(szablon,"^%s*$"))then
return "",nil,true;
end;
return nil,true;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
local tak=false;
szablon=szablonowe_modul:KodowanieNiezakodowanychNormKodowychReferencjiTekstu(szablon,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,false,function(szablon,obiekt,kod,parametr1,parametr2,parametr3)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if((nazwa_szablonu=="Br")or(nazwa_szablonu=="Hr"))then
return " ";
else
local nazwa_zmiennej=znaczniki_szablonowe[nazwa_szablonu];
if(nazwa_zmiennej)then
local zawartosc=tabela_parametrow_szablonu[nazwa_zmiennej];
return zawartosc or " ";
end;
end;
end);
if(wynik)then return wynik,nil,true;end;
elseif(obiekt=="ZNACZNIK")then
tak=true;
local nazwa,zawartosc,atrybuty=parametr1,parametr2,parametr3;
if((nazwa=="br")or(nazwa=="hr"))then
return " ",nil,true;
else
return zawartosc or "",nil,true;
end;
end;
return nil,true;
end);
if(tak)then
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
end;
local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik=stronicowyparser_analizaaspisurzeczy_modul.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true);
if(not czy_element_spisu)then return "",nil,true;end;
elseif(obiekt=="WIKITABELA")then
szablon=mw.ustring.match(szablon,"^{|(.-)|}$");
szablon=mw.ustring.gsub(szablon,"^[^\n]+","");
--szablon=mw.ustring.gsub(szablon,"[|!][|!]","\n\n");
szablon=mw.ustring.gsub(szablon,"\n|[%-%+]?[^%S\n]*[^|\n]*|([^|\n]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end);
szablon=mw.ustring.gsub(szablon,"\n|%-([^|\n]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end);
szablon=mw.ustring.gsub(szablon,"\n|%-[^%S\n|]*","\n\n");
szablon=mw.ustring.gsub(szablon,"||([^|\n]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end)
szablon=mw.ustring.gsub(szablon,"\n|%+[^%S\n]*([^\n]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end);
szablon=mw.ustring.gsub(szablon,"\n|([^\n|]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end);
return szablon,nil,true;
end;
return nil,true;
end,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)
tekst_rozwiniety_calego_artykulu=szeregi_modul.ZamianaZnakowaLinii(tekst_rozwiniety_calego_artykulu,function(linia)
local linia_nie_nil=mw.ustring.match(linia,wzor);
if(linia_nie_nil)then
local tak=nil;
local linia_tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(linia_nie_nil,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if((nazwa_szablonu=="Br")or(nazwa_szablonu=="Hr"))then
tak=true;
return " ";
end;
local szablon_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(szablon_ce)then
local tekst=tabela_parametrow_szablonu[szablon_ce];
if(tekst)then
tak=true;
return tekst;
end;
end;
end);
if(wynik)then return wynik,nil,true;end;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((nazwa=="br")or(nazwa=="hr"))then
tak=true;
return " ",nil,true;
elseif((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
tak=true;
return zawartosc or "",nil,true;
end;
elseif(obiekt=="PRE")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
zawartosc=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
if(czy_dodatni_rozdzial)then
local zawartosc=mw.ustring.gsub(zawartosc,"\n"," ");
tak=true;
return zawartosc,nil,true;
else
tak=true;
return zawartosc,nil,true;
end;
else
tak=true;
return "",nil,true;
end;
elseif(obiekt=="ŹRÓDŁO")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
zawartosc=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
if(czy_dodatni_rozdzial)then
local zawartosc=mw.ustring.gsub(zawartosc,"\n"," ");
tak=true;
return zawartosc,nil,true;
else
tak=true;
return zawartosc,nil,true;
end;
else
tak=true;
return "",nil,true;
end;
elseif(obiekt=="NOWIKI")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
zawartosc=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
local zawartosc=mw.ustring.gsub(zawartosc,"\n"," ");
tak=true;
return zawartosc,nil,true;
else
tak=true;
return "",nil,true;
end;
end;
return nil,true;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
return linia_tekst;
else
return nil;
end;
end);
end;
-----
LiniaRozdzialyDodatnieOrazUjemne("^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$",true);
LiniaRozdzialyDodatnieOrazUjemne("^([%*#;:]+[^\n]*)$",false);
tekst_rozwiniety_calego_artykulu=szablonowe_modul:ModyfikowanieKodowoSzablonoweZakodowanegoTekstu(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,
function(szablon,obiekt,kod,poziom_iteracji,szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica)
if(obiekt=="SZABLON")then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu])then
return "\n\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod).."\n\n ";
else
local numer_parametru=szablony_sztucznego_wprowadzenia_tekstu[nazwa_szablonu];
if(numer_parametru)then
local parametr=tabela_parametrow_szablonu[numer_parametru];
if(parametr)then
local naglowek=p.NapisWprowadzeniaTekstuHNumer(parametr);
if(naglowek)then
local obiekt_hnumer="ZNACZNIK";
local kod_hnumer=(#(tablica_analizy_obiektow_strony_dany_modul[obiekt_hnumer] or {}))+1;
return "\n\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt_hnumer,kod_hnumer).."\n\n ",naglowek,obiekt_hnumer,kod_hnumer;
end;
end;
end;
end;
end);
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
return "\n\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod).."\n\n ";
end;
elseif(obiekt=="INNEPRE")then
return "\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod).."\n";
elseif((obiekt=="PRE")or(obiekt=="ŹRÓDŁO")or(obiekt=="GALERIA")or(obiekt=="MAPAOBRAZU")or(obiekt=="PUDEŁKOWEJŚCIA"))then
return "\n\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod).."\n\n ";
end;
end,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
-----
end;
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"<!%-%-.-%-%->","");
local tab_magiczne_derektywy=stronicowyparser_obiekty_modul.magiczne_derektywy;
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"__(%u+)__",function(derektywy)
return tab_magiczne_derektywy[derektywy] and "" or nil;
end);
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"^(%-%-%-%-+)[^%S\n]*([^\n]+)","%1\n %2");
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"\n(%-%-%-%-+)[^%S\n]*([^\n]+)","\n%1\n %2");
--tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"\n\n","\n\n");
if(czy_dalej_rozwazac_zakodowane)then
----
tekst_rozwiniety_calego_artykulu=p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE);
tekst_rozwiniety_calego_artykulu=__FUNKCJA_ANALIZA_SPISU and __FUNKCJA_ANALIZA_SPISU(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or tekst_rozwiniety_calego_artykulu;
end;
--mw.log( tekst_rozwiniety_calego_artykulu)
--local iter_main=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"\n([^\n]*)\n");
local iter_main=szeregi_modul.IteratorLiniiTekstu(tekst_rozwiniety_calego_artykulu);
local naglowek_aktualnego_rozdzialu;
local linia_naglowka_aktualnego_rozdzialu;
local poziom_aktualnego_rozdzialu;
local poczatek_aktualnego_rozdzialu;
local numeracja_aktualnego_rozdzialu;
local czy_rozdzial_aktualny_centrowany;
local czy_koniec=false;
----
local odczyt_jakie_spisy_tresci=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu;
local jakie_spisy_tresci=parametry_modul["KopiujTabelęElementów"](odczyt_jakie_spisy_tresci);
setmetatable(jakie_spisy_tresci,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local czy_ce_spis_tresci=nil;
----
local czy_w_spisie_tresci=((not czy_inne_rozdzialy_analizowac)and true or nil);
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local parser=p.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
-----
local tak_ce_spis_tresci=nil;
local m=0;
local function Wystepowanie(linia,funkcja1,funkcja2)
local czy_znaleziono_okladka=false;
local function RozwazajLinie(szablon,obiekt,kod)
if(szablon)then
local tab_2,numer_rodzaju_artykulu,id,parametry,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,p.__FUNKCJA_KOMPLETOWANIA);
if(not kom)then
local tab=((tab_2 and tab_2[1]) and tab_2 or nil);
if(tab)then
local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab[1],false);
local czy_okladka=mw.ustring.match(artykul,stronicowyparser_obiekty_modul.artykularne_niespisowe[1]);
if((artykul~="")and((numer_rodzaju_artykulu~=1)or((numer_rodzaju_artykulu==1)and(not czy_okladka))))then
return 1;
elseif(czy_okladka)then
czy_znaleziono_okladka=true;
end;
end;
else
return 0;
end;
end;
end;
local function RozwazajLinieZnacznikowe(zawartosc)
local wartosc;
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(zawartosc,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst)
local function CenterZnacznikLinia(szablon,obiekt,kod)
wartosc=RozwazajLinie(szablon,obiekt,kod);
if(not wartosc)then return;end;
if(wartosc==1)then return nil;end;
return szablon,tekst;
end;
if(obiekt=="SZABLON")then
local szablon,tekst=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local szablon,tekst=CenterZnacznikLinia(szablon,obiekt,kod);
return szablon,tekst;
end);
return szablon,tekst;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
local szablon,tekst=CenterZnacznikLinia(szablon,obiekt,kod);
return szablon,tekst;
end;
end);
for szablon,obiekt,kod in iter do end;
return wartosc;
end;
local szablon_spis_tresci;
local function spis_tresci(wystepowanie_linkow,hn_number)
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(wystepowanie_linkow,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iter do
local function Spis(szablon,obiekt,kod)
local tab_2,numer_rodzaju_artykulu,id,parametry,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,p.__FUNKCJA_KOMPLETOWANIA);
if(not kom)then
local tab=((tab_2 and tab_2[1]) and tab_2 or nil);
if((tab)and(numer_rodzaju_artykulu==1)and(stronicowyparser_analizaaspisurzeczy_modul.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab[1],false))))then
tak_ce_spis_tresci=hn_number;
szablon_spis_tresci=wystepowanie_linkow;
return 1;
end;
else
return 0;
end;
end;
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local wynik=Spis(szablon,obiekt,kod);
if(wynik)then return wynik;end;
end);
if(wynik)then return wynik;end;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
local wynik=Spis(szablon,obiekt,kod);
if(wynik)then return wynik;end;
end;
end;
wystepowanie_linkow=czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(wystepowanie_linkow,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul) or wystepowanie_linkow;
wystepowanie_linkow=mw.text.trim(wystepowanie_linkow);
local czy_ce=jakie_spisy_tresci[wystepowanie_linkow];
if(czy_ce)then
tak_ce_spis_tresci=hn_number;
szablon_spis_tresci=wystepowanie_linkow;
return 1;
end;
end;
local wystepowanie_linkow=mw.ustring.match(linia,"^[#:%*;%d%.>]+%s*(.+)$") or mw.ustring.match(linia,"^(%S+%s*.+)$");
local tak=nil;
if(czy_dalej_rozwazac_zakodowane)then
if(wystepowanie_linkow)then
local czy_rozdzial=nil;local wartosc=nil;
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(wystepowanie_linkow,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst)
local czy_linkw=(obiekt=="LINKW");local czy_linkz=(obiekt=="LINKZ");local czy_szablon=(obiekt=="SZABLON");local czy_znacznik=(obiekt=="ZNACZNIK");
if(czy_linkw or czy_linkz or czy_szablon or czy_znacznik)then
local podrecznik=nil;
if(czy_szablon)then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
-----
local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(czy_ce)then
local szablon_spis_tresci_zawartosc=tabela_parametrow_szablonu[czy_ce];
if(szablon_spis_tresci_zawartosc)then
szablon_spis_tresci_zawartosc=mw.ustring.match(szablon_spis_tresci_zawartosc,"^'*%s*(.-)%s*'*$");
wartosc=spis_tresci(szablon_spis_tresci_zawartosc,true);
else
wartosc=RozwazajLinie(szablon,obiekt,kod);
end;
else
wartosc=RozwazajLinie(szablon,obiekt,kod);
if(wartosc)then podrecznik=true;else podrecznik=false;end;
end;
end);
elseif(czy_znacznik)then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
if(nazwa=="center")then
szablon_spis_tresci=mw.ustring.match(zawartosc,"^'*%s*(.-)%s*'*$");
wartosc=spis_tresci(szablon_spis_tresci,true);
elseif(znaczniki_wprowadzenia_tekstu[nazwa])then
szablon_spis_tresci=mw.ustring.match(zawartosc,"^'*%s*(.-)%s*'*$");
local hn_number=p.HnNumerWprowadzeniaTekstu(nazwa,atrybuty)
wartosc=spis_tresci(szablon_spis_tresci,hn_number);
else
wartosc=RozwazajLinieZnacznikowe(zawartosc);
end;
end;
else
wartosc=RozwazajLinie(szablon,obiekt,kod);
if(wartosc)then podrecznik=true;else podrecznik=false;end;
end;
if(podrecznik==true)then
if(not czy_rozdzial)then
if(wartosc==1)then
local wystepowanie_linku_lub_szablonu=(mw.ustring.match(tekst,"^'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)))
and(not mw.ustring.match(tekst,"^'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."%s*>"))
and (mw.ustring.match(tekst,"^[^%.]*%s*$"));
if(not wystepowanie_linku_lub_szablonu)then return nil;end;
czy_rozdzial=true;
elseif(wartosc==0)then
local ile;
tekst,ile=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod),"");
return "", ((ile>0) and tekst or nil);
end;
end;
elseif(podrecznik==false)then
if(not wartosc)then
if(czy_znaleziono_okladka)then
local czy_nie_uwzgledniac_linii=mw.ustring.match(tekst,"[%s%p]*<[%s<]-%s*'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod));
if(not czy_nie_uwzgledniac_linii)then
local tekst,ile=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod),"");
return "", ((ile>0) and tekst or nil);
else
czy_znaleziono_okladka=false;
end;
else
local tekst,ile=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod),"");
return "", ((ile>0) and tekst or nil);
end;
end;
end;
if(not wartosc)then return;end;
tak=tak or (wartosc==1);
if(tak)then return;end;
return szablon,tekst;
else
local tekst,ile=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod),"");
return "", ((ile>0) and tekst or nil);
end;
end);
for szablon,obiekt,kod in iter do end;
end;
end;
if(tak)then
funkcja1(szablon_spis_tresci);
else
funkcja2();
end;
end
return function()
local tab_str={};
local linia;
local function IterMain()
for linia in iter_main do
local nazwa_rozdzialu;local poziom_rozdzialu;local poczatek_rozdzialu;local numeracja_rozdzialu;local czy_rozdzial_centrowany;
---------------------------------------
nazwa_rozdzialu=mw.ustring.match(linia,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$");
if(nazwa_rozdzialu) then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajNapisPoziomuWprowadzeniaTekstu(nazwa_rozdzialu);
end;
if(not nazwa_rozdzialu)then
if(czy_inne_rozdzialy_analizowac)then
if(not czy_w_spisie_tresci)then
Wystepowanie(linia,function(szablon_spis_tresci)
if(not tak_ce_spis_tresci)then
nazwa_rozdzialu="Spis treści";
poziom_rozdzialu=nil;
table.insert(tab_str,linia);
else
if(szablon_spis_tresci)then
local numeracja,rozdzial=p.NumeracjaOrazTekstWprowadzeniaTekstu(szablon_spis_tresci);
if((numeracja)and(rozdzial))then
numeracja_rozdzialu=numeracja;
nazwa_rozdzialu=rozdzial;
else
nazwa_rozdzialu=szablon_spis_tresci;
numeracja_rozdzialu=nil;
end;
else
nazwa_rozdzialu="Spis treści";
numeracja_rozdzialu=nil;
end;
local czy_rozdzial_naglowka_hn=tonumber(tak_ce_spis_tresci);
poziom_rozdzialu=czy_rozdzial_naglowka_hn or 2;
czy_rozdzial_centrowany=(not czy_rozdzial_naglowka_hn)and true or false;
poczatek_rozdzialu=nil;
--str="";
end;
end,function()
nazwa_rozdzialu=nil;
end);
end;
if(not nazwa_rozdzialu)then
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
end;
else
nazwa_rozdzialu=nil;
end;
end;
if(nazwa_rozdzialu)then
czy_w_spisie_tresci=true;
if(not naglowek_aktualnego_rozdzialu)then
naglowek_aktualnego_rozdzialu=nazwa_rozdzialu;
linia_naglowka_aktualnego_rozdzialu=linia;
poziom_aktualnego_rozdzialu=poziom_rozdzialu;
poczatek_aktualnego_rozdzialu=poczatek_rozdzialu;
numeracja_aktualnego_rozdzialu=numeracja_rozdzialu;
czy_rozdzial_aktualny_centrowany=czy_rozdzial_centrowany;
else
----------------------------------------------
local naglowek_posredni_aktualnego_rozdzialu=naglowek_aktualnego_rozdzialu;
local linia_naglowka_posredni_aktualnego_rozdzialu=linia_naglowka_aktualnego_rozdzialu;
local poziom_posredni_aktualnego_rozdzialu=poziom_aktualnego_rozdzialu;
local poczatek_posredni_aktualnego_rozdzialu=poczatek_aktualnego_rozdzialu;
local numeracja_posredni_aktualnego_rozdzialu=numeracja_aktualnego_rozdzialu;
local czy_rozdzial_posredni_centrowany=czy_rozdzial_aktualny_centrowany;
----------------------------------------------
naglowek_aktualnego_rozdzialu=nazwa_rozdzialu;
linia_naglowka_aktualnego_rozdzialu=linia;
poziom_aktualnego_rozdzialu=poziom_rozdzialu;
poczatek_aktualnego_rozdzialu=poczatek_rozdzialu;
numeracja_aktualnego_rozdzialu=numeracja_rozdzialu;
czy_rozdzial_aktualny_centrowany=czy_rozdzial_centrowany;
local str=table.concat(tab_str,"\n");
if(not __FUNKCJA2)then
naglowek_posredni_aktualnego_rozdzialu=naglowek_posredni_aktualnego_rozdzialu
and (czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(naglowek_posredni_aktualnego_rozdzialu,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul)
or naglowek_posredni_aktualnego_rozdzialu
)
or nil;
str=str and (czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(str,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul) or str) or nil;
elseif(czy_dalej_rozwazac_zakodowane)then
naglowek_posredni_aktualnego_rozdzialu=naglowek_posredni_aktualnego_rozdzialu and __FUNKCJA2(naglowek_posredni_aktualnego_rozdzialu,nil,tablica_analizy_obiektow_strony_dany_modul,true) or nil;
str=str and __FUNKCJA2(str,nil,tablica_analizy_obiektow_strony_dany_modul,false) or nil;
end;
--linia_poprz=nil;
m=m+1;
return {naglowek_posredni_aktualnego_rozdzialu,linia_naglowka_posredni_aktualnego_rozdzialu,},str,poziom_posredni_aktualnego_rozdzialu,poczatek_posredni_aktualnego_rozdzialu,numeracja_posredni_aktualnego_rozdzialu,czy_rozdzial_posredni_centrowany;
end;
else
if(naglowek_aktualnego_rozdzialu)then
table.insert(tab_str,linia);
end;
--linia_poprz=linia;
end;
end;
if(czy_koniec)then return nil;end;
czy_koniec=true;
---
local str=table.concat(tab_str,"\n");
--
if(not __FUNKCJA2)then
naglowek_aktualnego_rozdzialu=naglowek_aktualnego_rozdzialu
and (czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(naglowek_aktualnego_rozdzialu,nil,tablica_analizy_obiektow_strony_dany_modul)
or naglowek_aktualnego_rozdzialu
)
or nil;
str=str and (czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(str,nil,tablica_analizy_obiektow_strony_dany_modul) or str) or nil;
elseif(czy_dalej_rozwazac_zakodowane)then
naglowek_aktualnego_rozdzialu=naglowek_aktualnego_rozdzialu and __FUNKCJA2(naglowek_aktualnego_rozdzialu,nil,tablica_analizy_obiektow_strony_dany_modul,true) or nil;
str=str and __FUNKCJA2(str,nil,tablica_analizy_obiektow_strony_dany_modul,false) or nil;
end;
--linia_nast=nil;linia_poprz=nil;
m=m+1;
return (naglowek_aktualnego_rozdzialu and {naglowek_aktualnego_rozdzialu,linia_naglowka_aktualnego_rozdzialu,} or nil),str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end;
----
local naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany=IterMain();
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
return p;
k5pglku0z0pjznilhv3q8ai3p8m1c8x
557990
557986
2026-09-29T11:16:49Z
Persino
2851
557990
Scribunto
text/plain
local p={};
function p.NapisWprowadzeniaTekstu(rozdzial,poziom,id)
local naglowek;
poziom=poziom or 1;
poziom=(poziom>0)and poziom or 1;
if(poziom<=6)then
local str_poziom=mw.ustring.rep("=",poziom);
naglowek="\n"..str_poziom..rozdzial..str_poziom.."\n";
else
naglowek="\n<h6 "..(id and ("id=\""..id.."\"") or "").." class=\"mw-hnumber mw-hnumber-"..poziom.."\">"..rozdzial.."</h6>\n";
end;
return naglowek;
end;
function p.NapisWprowadzeniaTekstuHn(rozdzial,poziom,tab_atrybuty)
local naglowek;
poziom=poziom or 1;
poziom=(poziom>0)and poziom or 1;
local atrybuty_wikikod;
if(tab_atrybuty)then
for name,value in pairs(tab_atrybuty)do
value=mw.ustring.gsub(value,"\"","\\\"");
local element=name.."=\""..((name=="class") and ((poziom > 6)and ("mw-hnumber mw-hnumber-"..poziom.." ") or ("")) or "")..value.."\"";
atrybuty_wikikod=(atrybuty_wikikod or "")..(atrybuty_wikikod and " " or "")..element;
end;
end;
if((poziom>6)and((not atrybuty_wikikod)or(not tab_atrybuty["class"])))then
atrybuty_wikikod=(atrybuty_wikikod or "")..(atrybuty_wikikod and " " or "").."class=\""..((poziom > 6) and ("mw-hnumber mw-hnumber-"..poziom.." ") or ("")).."\"";
end;
if(poziom<=6)then
local str_poziom=mw.ustring.rep("=",poziom);
naglowek="\n<h"..poziom.." "..(atrybuty_wikikod or "")..">"..rozdzial.."</h"..poziom..">\n";
else
naglowek="\n<h6 "..(atrybuty_wikikod or "")..">"..rozdzial.."</h6>\n";
end;
return naglowek;
end;
function p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego(tekst,zawartosc,obiekt,kod)
if(mw.ustring.match(zawartosc,"\n"))then return false;end;
local szablonowe_modul=require("Module:Szablonowe");
local kod_norma_wzoru_obiektu=szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod);
tekst='\n'..tekst..'\n';
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;
return false;
end;
function p.NapisWprowadzeniaTekstuHNumer(parametr)
local naglowek,poziom=p.PodajNapisPoziomuWprowadzeniaTekstu(parametr);
if(not naglowek)then return nil;end;
if(poziom<=6)then
return "<h"..poziom..">"..naglowek.."</h"..poziom..">";
else
return "<h6 class=\"mw-hnumber mw-hnumber-"..poziom.."\">"..naglowek.."</h6>";
end;
end;
function p.PodajNapisPoziomuWprowadzeniaTekstu(linia)
if(mw.ustring.match(linia,"^%s*=*%s*$"))then
return nil,0;
end;
local rowna_lewy=mw.ustring.match(linia,"^(=+)");
local rowna_prawy=mw.ustring.match(linia,"(=+)%s*$");
if((rowna_lewy)and(rowna_prawy))then
local min_rowna=math.min(#rowna_lewy,#rowna_prawy);
local str_min_rowna=mw.ustring.rep("=",min_rowna);
local naglowek=mw.ustring.match(linia,"^%s*"..str_min_rowna.."([^\n]*[^\n%=][^\n]*)"..str_min_rowna.."%s*$");
if(not naglowek)then
return nil,0;
end;
local naglowek=mw.text.trim(naglowek);
return naglowek,min_rowna;
else
return nil,0;
end;
end;
function p.PodajTekstHNumerNapisuWprowadzeniaTekstu(linia)
local liczba1,zawartosc,liczba2=mw.ustring.match(linia,"<[Hh](%d+)[^<>]*>(.-)</[Hh](%d+)>");
if(not liczba1)then return nil;end;
if((#liczba1==1)and(#liczba2==1)and(liczba1==liczba2))then
local liczba1=tonumber(liczba1);
if(not liczba1)then return nil;end;
if((liczba1<1)or(liczba1>6))then return nil;end;
return zawartosc,liczba1;
end;
return nil;
end;
function p.CzyJestNapisWprowadzeniaTekstu(zawartosc)
return mw.ustring.match(zawartosc,"^=+[^\n]*[^=\n]+[^\n]*=+[^%S\n]*\n")
or mw.ustring.match(zawartosc,"\n=+[^\n]*[^=\n]+[^\n]*=+[^%S\n]*\n")
or mw.ustring.match(zawartosc,"\n=+[^\n]*[^=\n]+[^\n]*=+[^%S\n]*$")
or mw.ustring.match(zawartosc,"^=+[^\n]*[^=\n]+[^\n]*=+[^%S\n]*$");
end;
function p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)
return mw.ustring.match(zawartosc,"^[;%*:#]+")
or mw.ustring.match(zawartosc,"\n[;%*:#]+");
end;
function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)
local czy_naglowek=p.CzyJestNapisWprowadzeniaTekstu(wiersz);
if(czy_naglowek)then return true,true;end;
--czy_naglowek=mw.ustring.match(wiersz,"<[Hh]%d+[^<>]*>(.+)</[Hh]%d+>");
local czy_naglowek=p.PodajTekstHNumerNapisuWprowadzeniaTekstu(wiersz) and true or false;
return czy_naglowek,false;
end;
function p.WierszHNumer(tekst)
local tekst=mw.ustring.gsub(tekst,"(<[Hh](%d+)[^<>]*>)(.-)(</[Hh]%2%s*>)",function(lewy,poziom,tekst,prawy)
poziom=tonumber(poziom) or 0;
if((poziom>=1)and(poziom<=6))then
tekst=mw.ustring.gsub(tekst,"\n"," ");
return "\n"..lewy..tekst..prawy.."\n";
end;
end);
return tekst;
end;
function p.CzyJestJakikolwiekLinkArtykularnyTekstu(tekst,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
-----
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy;
local inne_linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy;
-----
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
-----
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iter do
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if((linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod)))then
return true;
end;
end);
if(wynik)then return wynik;end;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
return true;
--elseif((obiekt=="MATH")or(obiekt=="ŹRÓDŁO"))then
--return true;
end;
end;
return false;
end;
function p.CzyJestInnySpecjalnyTekstowyObiekt(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul)
local szablonowe_modul=require("Module:Szablonowe");
-----
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iter do
if((obiekt=="INNEPRE")or(obiekt=="PRE")or(obiekt=="ŹRÓDŁO")or(obiekt=="MATH")or(obiekt=="GALERIA")or(obiekt=="MAPAOBRAZU"))then
return true;
end;
end;
return false;
end;
function p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja)
local czy=mw.ustring.match(rozdzial_z_numeracja,"^[%d%.]+%s+") or mw.ustring.match(rozdzial_z_numeracja,"^[%d%.]+%s*$");
if(czy)then
local num=mw.ustring.match(rozdzial_z_numeracja,"^([%d%.]+)");
local tab=mw.text.split(num,"%.",false);
if(#tab==1)then
if(mw.ustring.match(num,"^%d+$"))then
return rozdzial_z_numeracja,"";
end;
else
if(tab[#tab]=="")then tab[#tab]=nil;end;
end;
local tak=true;
for i=1,#tab,1 do
tak=tak and mw.ustring.match(tab[i],"^%d+$");
if(not tak)then break;end;
end;
if(tak)then
local numeracja=mw.ustring.match(rozdzial_z_numeracja,"^([%d%.]+)%s*");
local rozdzial_bez_numeracji=mw.ustring.gsub(rozdzial_z_numeracja,"^[%d%.]+%s*","");
return rozdzial_bez_numeracji,numeracja;
end;
end;
return rozdzial_z_numeracja,"";
end;
function p.__FUNKCJA_KOMPLETOWANIA(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local tab_kom=stronicowyparser_obiekty_modul.szablony_kompletowania_stron_woluminu;
return tab_kom[nazwa_szablonu];
end;
function p.UruchamianieAnalizatoraSpisuRzeczyStrony()
return true;
end;
function p.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local rozdzial=mw.ustring.match(linia,"^('+..-:[%s_]-'*)[%s_]*$") or ((not mw.ustring.match(linia,"^%s+"))and(mw.ustring.match(linia,"^(..-:[%s_]-'*)[%s_]*$")));
if(rozdzial)then
return rozdzial,true;
else
local stronicowyparser_analizaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local spis_tresci=stronicowyparser_analizaspisurzeczy_modul.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,true);
if(spis_tresci)then
return linia,true;
else
local rozdzial,main=nil,nil;
if(not mw.ustring.match(linia,"^'+.-[^'%s].-'+.-[^'%s]%s*$"))then
rozdzial,main=mw.ustring.match(linia,"^('+[%s_]*(..-)[%s_]*'*)[%s_]*$");
end;
if(rozdzial)then
local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści");
local rozdzial_main=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(rozdzial,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if(not mw.ustring.match(rozdzial_main,"^.*![%s_]*'*[%s_]*$"))then
if(mw.ustring.match(rozdzial_main,"^[^']-$"))then
if((not mw.ustring.match(rozdzial_main,"^%u[%s_]"))and(not mw.ustring.match(rozdzial_main,"[%s_]%u$")))then
return rozdzial,true;
end;
end;
end;
else
local czy_nie_rozdzial_zerowy=mw.ustring.match(linia,"%.%s*$");
if(czy_nie_rozdzial_zerowy)then return linia,false;end;
end;
return nil;
end;
end;
end;
function p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,z_parametrami_linkowymi,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
if((not przedrotek_listy)or(#przedrotek_listy==0))then return false;end;
local czy_dwukropki=mw.ustring.match(przedrotek_listy,"^:+$");
if(not czy_dwukropki)then return false;end;
local czy_miedzy_cudzyslowami=mw.ustring.match(linia,"^%s*''+.+'*%s*$");
if(not czy_miedzy_cudzyslowami)then return false;end;
if(not z_parametrami_linkowymi)then return true;end;
local szablonowe_modul=require("Module:Szablonowe");
local czy_sa_kody=mw.ustring.match(linia,szablonowe_modul.NormaWzoruKodowaniaTekstu());
if(not czy_sa_kody)then return true;end;
local szablonowe_modul=require("Module:Szablonowe");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
if((obiekt=="SZABLON")or(obiekt=="LINKW"))then
local tab_pozycja_elementow_w_spisie_rzeczy,numer_rodzaju_artykulu,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,nil);
if((tab_pozycja_elementow_w_spisie_rzeczy)and(numer_rodzaju_artykulu==1))then
return false;
end;
end;
end;
return true;
end;
function p.HnNumerWprowadzeniaTekstu(nazwa,atrybuty)
local stronicowyparser_obiekty_modul=mw.loadData('Module:StronicowyParser/obiekty');
local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu;
local numer_rozdzialu=znaczniki_wprowadzenia_tekstu[nazwa];
if((atrybuty)and(numer_rozdzialu>=6))then
local klasa=atrybuty["class"];
if(klasa)then
local mw_hnumber_liczba=mw.ustring.match(klasa,"^%s*mw%-hnumber%-(%d+)%s*$")
or mw.ustring.match(klasa,"^%s*mw%-hnumber%-(%d+)%s+")
or mw.ustring.match(klasa,"%s+mw%-hnumber%-(%d+)%s+")
or mw.ustring.match(klasa,"%s+mw%-hnumber%-(%d+)%s*$");
mw_hnumber_liczba=tonumber(mw_hnumber_liczba) or 6;
mw_hnumber_liczba=(mw_hnumber_liczba>6) and mw_hnumber_liczba or 6;
numer_rozdzialu=mw_hnumber_liczba or numer_rozdzialu;
end;
end;
return numer_rozdzialu;
end;
function p.NumeracjaOrazTekstWprowadzeniaTekstu(zawartosc)
local numeracja,rozdzial=mw.ustring.match(zawartosc,"^%s*([%d%.]*)%s*(.-)%s*$");
return numeracja,rozdzial;
end;
function p.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)
local zacznij;local wprowadzenie;local zawsze=false;local ostatnie=false;local bez_kropki=nil;local spac=nil;local nie_rozdzial=nil;local nie_numerowany=nil;
local stronicowyparser_obiekty_modul=mw.loadData('Module:StronicowyParser/obiekty');
local parametry_modul=require("Module:Parametry");
local szablonowe_modul=require("Module:Szablonowe");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści");
local stronicowyparser_analizaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local techniczne_modul=require("Module:Techniczne");
local specjalne_modul=require("Module:Specjalne");
local strony_modul=require("Module:Strony");
local szablony_wprowadzenia_napisu_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy;
local linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy;
local inne_linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy;
local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu;
local maksymalny_rozmiar_rozdzialu_zerowego=70;
return function(linia,tak_ce_spis_tresci)
----
local rozdzial=nil;local numeracja=nil;
local poczatek,rozdzial_z_numeracja=mw.ustring.match(linia,"^([#:%*;]+)%s*('*%s*[%d%.]*%s*.-%s*'*)%s*$");
local rozdzial_z_numeracja_nie_przetworzone=nil;
-----
----
if(not poczatek and not rozdzial_z_numeracja)then
rozdzial_z_numeracja=mw.ustring.match(linia,"^([%d%.]+%s*.-)%s*$") or mw.ustring.match(linia,"^'+(%s*[%d%.]+%s*.-)%s*'*%s*$")
if(rozdzial_z_numeracja)then
poczatek="";
rozdzial_z_numeracja=specjalne_modul["UsuńZnakiSpecjalne"](rozdzial_z_numeracja);
rozdzial_z_numeracja=mw.ustring.gsub(rozdzial_z_numeracja,"^(%s+)","");
rozdzial_z_numeracja=mw.ustring.gsub(rozdzial_z_numeracja,"(%s+)$","");
rozdzial,numeracja=p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja);
else
local function LiniaCydzyslow(linia)
local linia_wew_cudz=mw.ustring.match(linia,"^'+%s*(.-[^']+.-)%s*'+%s*$")
if(not linia_wew_cudz)then return false;end;
return not (mw.ustring.match(linia_wew_cudz,'^%u[%u%s]*$')
and((mw.ustring.match(linia_wew_cudz,"%s%u%s"))or(mw.ustring.match(linia_wew_cudz,"^%u%s"))or(mw.ustring.match(linia_wew_cudz,"%s%u$"))))
end;
if(LiniaCydzyslow(linia))then
rozdzial=linia;
poczatek="";
numeracja="";
else
local url_iter=mw.ustring.gmatch(linia,"(%S+)");
local czy_rozdzial=false;
for url in url_iter do
czy_rozdzial=czy_rozdzial or strony_modul.SprawdzanieURL(url);
if(czy_rozdzial)then
break;
end;
end;
if(czy_rozdzial)then
poczatek="";
numeracja="";
rozdzial=linia;
end;
end;
end;
else
rozdzial_z_numeracja_nie_przetworzone=rozdzial_z_numeracja;
rozdzial_z_numeracja=specjalne_modul["UsuńZnakiSpecjalne"](rozdzial_z_numeracja);
rozdzial_z_numeracja=mw.ustring.gsub(rozdzial_z_numeracja,"^(%s+)","");
rozdzial_z_numeracja=mw.ustring.gsub(rozdzial_z_numeracja,"(%s+)$","");
rozdzial,numeracja=p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(rozdzial_z_numeracja);
end;
local ze_specialnymi_obiektami=((rozdzial) and true or false);local czy_centrowanie=false;local czy_znaczniki_hn=false;local tekst;
local nazwa,zawartosc,atrybuty;
if(rozdzial)then tekst=rozdzial;else tekst=linia;end;
----
local function WykluczenieNieodpowiednichNormSzablonowych(rozdzial)
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(rozdzial,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
if((obiekt=="GALERIA")or(obiekt=="ŹRÓDŁO")or(obiekt=="PRE")or(obiekt=="INNEPRE")or(obiekt=="WIKITABELA")or(obiekt=="MAPAOBRAZU"))then
return nil;
elseif(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(stronicowyparser_obiekty_modul.szablony_nieodpowiednie_napisu_wprowadzenia_tekstu_centrowanego[nazwa_szablonu])then
return true;
end;
end);
if(wynik)then return nil;end;
end;
end;
return true;
end;
local FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu=function(wartosc)
if(mw.ustring.match(wartosc,"^%s*%d+%s*/%s*%d+%s*$"))then return nil;end;
if(mw.ustring.match(wartosc,"!%s*'*%s*$"))then return nil;end;
numeracja,rozdzial=p.NumeracjaOrazTekstWprowadzeniaTekstu(wartosc);
if(rozdzial)then
local wynik=WykluczenieNieodpowiednichNormSzablonowych(rozdzial);
if(not wynik)then
numeracja=nil;rozdzial=nil;
return nil;
end;
end;
end;
local function NiestardardoweSzablonoweWprowdzeniaTekstu(szablon,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(czy_ce)then
local wartosc=tabela_parametrow_szablonu[czy_ce];
if(wartosc)then
return FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu(wartosc);
end;
return nil;
end;
end;
local function NiestardardoweZnacznikoweWprowdzeniaTekstu(szablon,nazwa,zawartosc,atrybuty)
if(zawartosc)then
if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
return FunkcjaRewidowaniaNiestandardowegoNapisuWprowadzeniaTekstu(zawartosc);
end;
end;
return nil;
end;
----
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
---
local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(czy_ce)then
ze_specialnymi_obiektami=true;
czy_centrowanie=true;
NiestardardoweSzablonoweWprowdzeniaTekstu(szablon,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow);
--if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
return true;
elseif((linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod)))then
ze_specialnymi_obiektami=true;
if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
return true;
end;
end);
if(wynik)then return;end;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
ze_specialnymi_obiektami=true;
return nil;
elseif((obiekt=="PRE")or(obiekt=="MATH")or(obiekt=="ŹRÓDŁO")or(obiekt=="INNEPRE"))then
if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
ze_specialnymi_obiektami=true;
return nil;
elseif(obiekt=="ZNACZNIK")then
nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
if(nazwa=="center")then
ze_specialnymi_obiektami=true;
czy_centrowanie=true;
NiestardardoweZnacznikoweWprowdzeniaTekstu(szablon,nazwa,zawartosc,atrybuty);
--if(rozdzial)then poczatek=nil;rozdzial=nil;numeracja=nil;end;
return nil;
elseif(znaczniki_wprowadzenia_tekstu[nazwa])then
ze_specialnymi_obiektami=true;
czy_znaczniki_hn=true;
NiestardardoweZnacznikoweWprowdzeniaTekstu(szablon,nazwa,zawartosc,atrybuty);
return nil;
end;
end;
end;
return szablon;
end);
for szablon,obiekt,kod in iter do end;
rozdzial=rozdzial and parametry_modul["Odstępy"](rozdzial) or nil;
poczatek=poczatek and parametry_modul["Odstępy"](poczatek) or nil;
numeracja=numeracja and parametry_modul["Odstępy"](numeracja) or nil;
if(not ze_specialnymi_obiektami)then
local rozdzial,czy_standardowe_rozdzialy=p.CzyZerowyNapisWprowadzeniaTekstu(rozdzial or linia,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if((rozdzial)and(czy_standardowe_rozdzialy))then
if(#rozdzial<=maksymalny_rozmiar_rozdzialu_zerowego)then
if(not mw.ustring.match(rozdzial,"^.+[%.%;!,%?]%s*'+%s*$"))then
return linia,rozdzial,0,nil,numeracja;
else
return nil;
end;
else
local czy_poczatek_niepusty=parametry_modul.CzyTak(poczatek);
local czy_numeracja_niepusta=parametry_modul.CzyTak(numeracja);
if(((not czy_poczatek_niepusty)or(#poczatek==0))and((not czy_numeracja_niepusta)or(#numeracja==0)))then
return nil;
elseif(not mw.ustring.match(rozdzial,"^.+[%.%;!,%?]%s*'+%s*$"))then
return linia,rozdzial,0,nil,numeracja;
else
return nil;
end;
end;
else
return nil;
end;
elseif(czy_centrowanie)then
if(tak_ce_spis_tresci)then
if((rozdzial)and(numeracja))then
if((not parametry_modul.CzyTak(numeracja))and(not parametry_modul.CzyTak(rozdzial)))then
return nil,nil,nil,nil;
end;
return linia,rozdzial,2,nil,numeracja,true;
end;
end;
return nil;
elseif(czy_znaczniki_hn)then
if((rozdzial)and(numeracja))then
if((not parametry_modul.CzyTak(numeracja))and(not parametry_modul.CzyTak(rozdzial)))then
return nil,nil,nil,nil;
end;
local numer_rozdzialu=p.HnNumerWprowadzeniaTekstu(nazwa,atrybuty);
return linia,rozdzial,numer_rozdzialu,nil,numeracja;
end;
elseif(rozdzial)then
local czy_numeracja_niepusta=parametry_modul.CzyTak(numeracja);
local czy_rozdzial_niepusty=parametry_modul.CzyTak(rozdzial);
if((not czy_numeracja_niepusta)and(not czy_rozdzial_niepusty))then
return nil;
end;
if(#rozdzial<=maksymalny_rozmiar_rozdzialu_zerowego)then
local czy_pominac_ten_rozdzial_jako_rozdzial=rozdzial_z_numeracja_nie_przetworzone and p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(poczatek,rozdzial_z_numeracja_nie_przetworzone,false,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) or nil;
if(not czy_pominac_ten_rozdzial_jako_rozdzial)then
if((#poczatek>0)or(not mw.ustring.match(rozdzial,"^.+[%.%;!,%?]%s*'+%s*$")))then
return linia,rozdzial,(#poczatek*(-1)),poczatek,numeracja;
else
return nil;
end;
else
return nil;
end;
else
local czy_poczatek_niepusty=parametry_modul.CzyTak(poczatek);
if(((not czy_poczatek_niepusty)or(#poczatek==0))and((not czy_numeracja_niepusta)or(#numeracja==0)))then
return nil;
else
local czy_pominac_ten_rozdzial_jako_rozdzial=rozdzial_z_numeracja_nie_przetworzone and p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(poczatek,rozdzial_z_numeracja_nie_przetworzone,false,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) or nil;
if(not czy_pominac_ten_rozdzial_jako_rozdzial)then
if((#poczatek>0)or(not mw.ustring.match(rozdzial,"^.+[%.%;!,%?]%s*'+%s*$")))then
return linia,rozdzial,(#poczatek*(-1)),poczatek,numeracja;
else
return nil;
end;
else
return nil;
end;
end;
end;
else
return nil;
end;
return nil;
end;
end;
function p.TekstPoNapisieWprowadzeniaTekstuStrony(frame)
local strona=frame.args[1];
local id_rozdzialu1=frame.args[2] or "";
local id_rozdzialu2=frame.args[3] or "";
strona=frame:preprocess(strona);
local title=mw.title.makeTitle('',strona);
if((not title)or(not title.exists))then
return nil;
end;
local tekst=title:getContent();
if(not tekst)then return nil;end;
return p.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2);
end;
function p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(tekst)
tekst=mw.ustring.gsub(tekst,"^[%s_]+","");
tekst=mw.ustring.gsub(tekst,"[%s_]+$","");
tekst=mw.ustring.gsub(tekst,"[%s_]+","_");
return tekst;
end;
function p.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony(frame)
local strona=frame.args[1];
local id_rozdzialu=frame.args[2] or "";
strona=frame:preprocess(strona);
local title=mw.title.makeTitle('',strona);
if((not title)or(not title.exists))then
return nil;
end;
local tekst=title:getContent();
if(not tekst)then return nil;end;
id_rozdzialu=frame:preprocess(id_rozdzialu);
local specjalne_modul=require("Module:Specjalne");
id_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](id_rozdzialu);
id_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(id_rozdzialu);
local html_modul=require("Module:Html");
id_rozdzialu=html_modul.DecodeKoduHTMLZnaku(id_rozdzialu);
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
--tekst=mw.ustring.gsub(tekst,"\n\n","\n\n");
tekst=p.WierszHNumer(tekst);
local szeregi_modul=require("Module:Szeregi");
local iter=szeregi_modul.IteratorLiniiTekstu(tekst);
local tab_rozdzialy={};
local specjalne_modul=require("Module:Specjalne");
for wiersz in iter do
local czy_naglowek,czy_naglowek_wiki=p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz);
if(czy_naglowek)then
local nazwa_rozdzialu,poziom_rozdzialu;
if(czy_naglowek_wiki)then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajNapisPoziomuWprowadzeniaTekstu(wiersz);
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajTekstHNumerNapisuWprowadzeniaTekstu(wiersz);
end;
nazwa_rozdzialu=frame:preprocess(nazwa_rozdzialu);
local nazwa_rozdzialu_aktualna=nazwa_rozdzialu;
nazwa_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](nazwa_rozdzialu);
nazwa_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(nazwa_rozdzialu);
nazwa_rozdzialu=html_modul.DecodeKoduHTMLZnaku(nazwa_rozdzialu);
local c=1;
for i=1,#tab_rozdzialy,1 do
if(tab_rozdzialy[i]==nazwa_rozdzialu)then
c=c+1;
end;
end;
if(c>1)then
nazwa_rozdzialu=nazwa_rozdzialu.."_"..c;
end;
table.insert(tab_rozdzialy,nazwa_rozdzialu);
if(id_rozdzialu==nazwa_rozdzialu)then
return nazwa_rozdzialu_aktualna;
end;
end;
end;
return nil;
end;
function p.NumerSekcjiStrony(frame)
local strona=frame.args[1];
local id_rozdzialu=frame.args[2] or "";
strona=frame:preprocess(strona);
local title=mw.title.makeTitle('',strona);
if((not title)or(not title.exists))then
return nil;
end;
local tekst=title:getContent();
if(not tekst)then return nil;end;
id_rozdzialu=frame:preprocess(id_rozdzialu);
local specjalne_modul=require("Module:Specjalne");
id_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](id_rozdzialu);
id_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(id_rozdzialu);
local html_modul=require("Module:Html");
id_rozdzialu=html_modul.DecodeKoduHTMLZnaku(id_rozdzialu);
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
--tekst=mw.ustring.gsub(tekst,"\n\n","\n\n");
tekst=p.WierszHNumer(tekst);
local szeregi_modul=require("Module:Szeregi");
local iter=szeregi_modul.IteratorLiniiTekstu(tekst);
local tab_rozdzialy={};
local ile=1;
for wiersz in iter do
local czy_naglowek,czy_naglowek_wiki=p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz);
if(czy_naglowek)then
local nazwa_rozdzialu,poziom_rozdzialu;
if(czy_naglowek_wiki)then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajNapisPoziomuWprowadzeniaTekstu(wiersz);
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajTekstHNumerNapisuWprowadzeniaTekstu(wiersz);
end;
nazwa_rozdzialu=frame:preprocess(nazwa_rozdzialu);
nazwa_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](nazwa_rozdzialu);
nazwa_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(nazwa_rozdzialu);
nazwa_rozdzialu=html_modul.DecodeKoduHTMLZnaku(nazwa_rozdzialu);
local c=1;
for i=1,#tab_rozdzialy,1 do
if(tab_rozdzialy[i]==nazwa_rozdzialu)then
c=c+1;
end;
end;
if(c>1)then
nazwa_rozdzialu=nazwa_rozdzialu.."_"..c;
end;
table.insert(tab_rozdzialy,nazwa_rozdzialu);
if(id_rozdzialu==nazwa_rozdzialu)then
return ile;
end;
ile=ile+1;
end
end;
return nil;
end;
function p.TekstWprowadzeniaTekstu(tekst,id_rozdzialu1,id_rozdzialu2)
local frame=mw.getCurrentFrame();
local specjalne_modul=require("Module:Specjalne");
local html_modul=require("Module:Html");
id_rozdzialu1=frame:preprocess(id_rozdzialu1);
id_rozdzialu1=specjalne_modul["WydzielZwykłyTekst"](id_rozdzialu1);
id_rozdzialu1=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(id_rozdzialu1);
id_rozdzialu1=html_modul.DecodeKoduHTMLZnaku(id_rozdzialu1);
id_rozdzialu2=frame:preprocess(id_rozdzialu2);
id_rozdzialu2=specjalne_modul["WydzielZwykłyTekst"](id_rozdzialu2);
id_rozdzialu2=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(id_rozdzialu2);
id_rozdzialu2=html_modul.DecodeKoduHTMLZnaku(id_rozdzialu2);
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
--tekst=mw.ustring.gsub(tekst,"\n\n","\n\n");
tekst=p.WierszHNumer(tekst);
local szeregi_modul=require("Module:Szeregi");
local iter=szeregi_modul.IteratorLiniiTekstu(tekst);
local tab_rozdzialy={};
local str=""
local nazwa_rozdzialu_aktualna;
local poziom_rozdzialu_aktualny;
for wiersz in iter do
local czy_naglowek,czy_naglowek_wiki=p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz);
if(czy_naglowek)then
local nazwa_rozdzialu,poziom_rozdzialu;
if(czy_naglowek_wiki)then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajNapisPoziomuWprowadzeniaTekstu(wiersz);
else
nazwa_rozdzialu,poziom_rozdzialu=p.PodajTekstHNumerNapisuWprowadzeniaTekstu(wiersz);
end;
nazwa_rozdzialu=frame:preprocess(nazwa_rozdzialu);
nazwa_rozdzialu=specjalne_modul["WydzielZwykłyTekst"](nazwa_rozdzialu);
nazwa_rozdzialu=p.UsuwanieSpacjiZnakoweNapisuWprowadzeniaTekstu(nazwa_rozdzialu);
nazwa_rozdzialu=html_modul.DecodeKoduHTMLZnaku(nazwa_rozdzialu);
local c=1;
for i=1,#tab_rozdzialy,1 do
if(tab_rozdzialy[i]==nazwa_rozdzialu)then
c=c+1;
end;
end;
if(c>1)then
nazwa_rozdzialu=nazwa_rozdzialu.."_"..c;
end;
table.insert(tab_rozdzialy,nazwa_rozdzialu);
if(((nazwa_rozdzialu_aktualna)and(nazwa_rozdzialu_aktualna==id_rozdzialu1))
and((((id_rozdzialu2=="")or(not id_rozdzialu2))and(poziom_rozdzialu<=poziom_rozdzialu_aktualny))or(nazwa_rozdzialu==id_rozdzialu2)))then
return str;
end;
if((id_rozdzialu1~="")and(nazwa_rozdzialu==id_rozdzialu1))then
nazwa_rozdzialu_aktualna=nazwa_rozdzialu;
poziom_rozdzialu_aktualny=poziom_rozdzialu;
str="";
elseif(id_rozdzialu1=="")then
nazwa_rozdzialu_aktualna="";
poziom_rozdzialu_aktualny=0;
if(id_rozdzialu2=="")then
return str;
elseif(nazwa_rozdzialu==id_rozdzialu2)then
return str;
else
str=(str~="")and (str.."\n"..wiersz) or wiersz;
end;
else
str=(str~="")and (str.."\n"..wiersz) or wiersz;
end;
else
str=(str~="")and (str.."\n"..wiersz) or wiersz;
end;
end;
if((id_rozdzialu1)and(id_rozdzialu1==""))then
return str;
elseif((nazwa_rozdzialu_aktualna)and(nazwa_rozdzialu_aktualna==id_rozdzialu1))then
return str;
end;
return "";
end;
function p.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-5];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy;
end;
end;
end;
local szablonowe_modul=require("Module:Szablonowe");
----
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local ktore=szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu[nazwa_szablonu];
if(not ktore)then return;end;
local tab=mw.text.split(tostring(ktore),"%s*;%s*",false);
local wynik="";
for _,num in pairs(tab)do
local numer_parametru=tonumber(num) or num;
for parametr,wartosc in pairs(tabela_parametrow_szablonu)do
if(parametr==numer_parametru)then
wynik=(wynik or "")..wartosc;
end;
end;
end;
return wynik;
end);
if((tablica_danych_parametrow_szablonu_strony)and(kod)and(wynik))then
if(not tablica_danych_parametrow_szablonu_strony[-5])then tablica_danych_parametrow_szablonu_strony[-5]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-5];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy=wynik;
end;
return wynik;
end;
function p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-6];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy;
end;
end;
end;
local szablonowe_modul=require("Module:Szablonowe");
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local szablony_z_dodatkiem_obiektowym=stronicowyparser_obiekty_modul.szablony_z_dodatkiem_obiektowym;
local dodatek=szablony_z_dodatkiem_obiektowym[nazwa_szablonu];
if(dodatek)then
local techniczne_modul=require("Module:Techniczne");
for name,value in pairs(tabela_parametrow_szablonu)do
local name=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](name);
local value=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](value);
dodatek=mw.ustring.gsub(dodatek,"%$%("..name.."%)",value);
end;
return dodatek;
end;
end);
if((tablica_danych_parametrow_szablonu_strony)and(kod)and(wynik))then
if(not tablica_danych_parametrow_szablonu_strony[-6])then tablica_danych_parametrow_szablonu_strony[-6]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-6];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy=wynik;
end;
return wynik;
end;
function p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_modul=require("Module:Techniczne");
tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
return "\n\n ";
end,nil,nil,
function(szablon,obiekt,kod,poziom_iteracji)
if(poziom_iteracji==0)then
if(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((nazwa=="br")or(nazwa=="hr"))then
return true;
end;
elseif(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
----
if((nazwa_szablonu=="Br")or(nazwa_szablonu=="Hr"))then
return true;
end;
end);
if(wynik)then return wynik;end;
end;
end;
return nil;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
return tekst;
end;
function p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_obiektow_strony_dany_modul_uzyskany,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE)
local CzySpecjalnaLinia=function(linia)
local czy_specjalna_linia=mw.ustring.match(linia,"^[%*,;:#]+") or mw.ustring.match(linia,"^%s*$") or mw.ustring.match(linia,"^%-%-%-%-");
if(not czy_specjalna_linia)then
if(mw.ustring.match(linia,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$"))then
return true;
end;
end;
return czy_specjalna_linia;
end;
----
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_modul=require("Module:Techniczne");
local CzyLiniaZeSpecjalnymiSzablonami=function(linia)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local szablony_w_nie_w_tej_samej_linii=stronicowyparser_obiekty_modul.szablony_w_nie_w_tej_samej_linii;
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,pelna_nazwa_spisu_tresci,tablica_obiektow_strony_dany_modul_uzyskany);
for szablon,obiekt,kod in iterator do
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(szablony_w_nie_w_tej_samej_linii[nazwa_szablonu])then
return true;
end;
end);
if(wynik)then return wynik;end;
end;
end;
return nil;
end;
----
--tekst=p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst,tablica_obiektow_strony_dany_modul_uzyskany,tablica_danych_parametrow_szablonu_strony);
----
local tab_linie_tekstu=mw.text.split(tekst,"\n");
if(#tab_linie_tekstu==0)then return "";end;
local tekst_nowy=tab_linie_tekstu[1];
local czy_linia_poprz=CzySpecjalnaLinia(tekst_nowy) or CzyLiniaZeSpecjalnymiSzablonami(tekst_nowy);
if(not czy_linia_poprz)then
tekst_nowy=p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(tekst_nowy,pelna_nazwa_spisu_tresci,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;
for i=2,#tab_linie_tekstu,1 do
local linia=tab_linie_tekstu[i];
local aktualna_specjalna_linia=CzySpecjalnaLinia(linia) or CzyLiniaZeSpecjalnymiSzablonami(linia);
if(not aktualna_specjalna_linia)then
linia=p.UsuwanieZnacznikoweOrazSzablonoweElementuNowejLinii(linia,pelna_nazwa_spisu_tresci,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;
if((not czy_linia_poprz)and(not aktualna_specjalna_linia))then
--local czy_wprowadzenie=mw.ustring.match(linia,"^>")
local tekst_nowy2=mw.ustring.match(tekst_nowy,"^(.*\n)[^%S\n]*\n[^%S\n]*$");
tekst_nowy=(tekst_nowy2 or tekst_nowy)..((tekst_nowy2) and "" or " ")..linia;
else
tekst_nowy=tekst_nowy.."\n"..linia;
end;
czy_linia_poprz=aktualna_specjalna_linia;
end;
return tekst_nowy;
end;
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_inne_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
local nazwy_modul=require("Module:Nazwy");
tablica_analizy_obiektow_strony_dany_modul=tablica_analizy_obiektow_strony_dany_modul or {};
tablica_danych_parametrow_szablonu_strony=tablica_danych_parametrow_szablonu_strony or {};
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local stronicowyparser_analizaaspisurzeczy_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local szablony_wprowadzenia_napisu_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy;
local szablonowe_modul=require("Module:Szablonowe");
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local html_modul=require("Module:Html");
local szeregi_modul=require("Module:Szeregi");
local szablony_do_usuwania_z_tekstu=stronicowyparser_obiekty_modul.szablony_do_usuwania_z_tekstu;
local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej=(nazwa_przestrzeni and nazwa_przestrzeni_ksiazki and nazwa_ksiazki and nazwa_spisu_tresci)
and nazwy_modul["NazwaModułu"](((nazwy_np_modul.Template~=nazwa_przestrzeni) and (nazwa_przestrzeni) or ""),nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci)
or nil;
local pelna_nazwa_spisu_tresci_szablonowa=((pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej)and(((nazwa_przestrzeni=="") and ":" or "")..pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej) or nil);
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;
local __FUNKCJA_OPERACJE_USUWANIE_BAZOWE=function(szablon,obiekt,kod,poziom_iteracji)
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil;
end;
--local tab_nazwa_spisow_przekierowaniowych={};
if(czy_dalej_rozwazac_zakodowane)then
----
local szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu=stronicowyparser_obiekty_modul.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu;
local tab_szablony_bez_generowania_napisowego=stronicowyparser_obiekty_modul.szablony_bez_generowania_napisowego;
local szablony_nie_typowo_linkowe=stronicowyparser_obiekty_modul.szablony_nie_typowo_linkowe;
local znaczniki_szablonowe=stronicowyparser_obiekty_modul.znaczniki_szablonowe;
local szablony_sztucznego_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_sztucznego_wprowadzenia_tekstu;
----
local function UsuwanieNowychLiniiZnacznikowe(szablon)
local tak=nil;
szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
-----
if((nazwa_szablonu=="Br")or(nazwa_szablonu=="Hr"))then
if(poziom_iteracji==0)then tak=true;end;
return " ";
end;
end);
if(wynik)then return wynik,nil,true;end;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((nazwa=="br")or(nazwa=="hr"))then
if(poziom_iteracji==0)then tak=true;end;
return " ",nil,true;
end;
end;
return nil,true;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
return szablon,tak;
end;
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)
local czy_tak=false;
local szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(czy_ce)then
local szablon_spis_tresci_zawartosc=tabela_parametrow_szablonu[czy_ce];
if(szablon_spis_tresci_zawartosc)then
czy_tak=czy_tak or true;
return szablon_spis_tresci_zawartosc;
end;
end;
return nil;
end);
if(wynik)then return wynik,nil,true;end;
return nil,true;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
czy_tak=czy_tak or true;
return zawartosc,nil,true;
end;
end;
end;
return nil,true;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
return szablon,czy_tak;
end;
local Modyfikacja=function(szablon,obiekt,kod)
local czy_tak=false;
local szablon,czy_tak1=UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu(szablon,obiekt,kod);
czy_tak=czy_tak or czy_tak1;
local szablon,czy_tak2=UsuwanieNowychLiniiZnacznikowe(szablon);
czy_tak=czy_tak or czy_tak2;
local szablon,ile=mw.ustring.gsub(szablon,"\n"," ");
czy_tak=czy_tak or (ile>0);
return szablon,czy_tak;
end;
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)
if(obiekt=="SZABLON")then
local tabela_parametrow_szablonu=parametr1;
local nazwa_szablonu=parametr2;
local tabela_modyfikatorow=parametr3;
if(szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu])then
local wynik,czy_tak=Modyfikacja(szablon,obiekt,kod);
if(not czy_tak)then return nil,true;end;
return wynik,true;
end;
elseif(obiekt=="ZNACZNIK")then
local nazwa=parametr1;
local zawartosc=parametr2;
local tab_atrybuty=parametr3;
if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
local wynik,czy_tak=Modyfikacja(szablon,obiekt,kod);
if(not czy_tak)then return nil,true;end;
return wynik,true;
end;
end;
end;
----
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
---
--local tab_nazwa_spisow_przekierowaniowych={};
---
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)
local spacja=" ";
local tab_spacja={
["nbsp"]=spacja,
["#32"]=spacja,
["#x20"]=spacja,
};
komorka=mw.ustring.gsub(komorka,"&([^&;]+);",tab_spacja);
local komorka_stara=komorka;
if(not nie_trimowanie)then
komorka=mw.text.trim(komorka);
end;
if(mw.ustring.match(komorka_stara,"^%s*[#%*:;>]"))then komorka=" "..komorka;end;
return ((not nie_trimowanie)and ("\n\n"..komorka.."\n") or komorka);
end;
----
local function ZamienNaKody(zawartosc,czy_szablon)
local function Linie(wzor)
zawartosc=mw.ustring.gsub(zawartosc,wzor,function(a,b)
return "&#"..mw.ustring.byte(a)..";"..(b or "");
end);
end;
if(not (mw.ustring.sub(zawartosc,1,1)=="\n"))then
Linie("^([=%*#:;])");
end;
local len=mw.ustring.len(zawartosc);
if(not (mw.ustring.sub(zawartosc,len,len)=="\n"))then
Linie("([=])([^%S\n]*)$");
end;
return zawartosc;
end;
tekst_rozwiniety_calego_artykulu=szablonowe_modul:KodowanieNiezakodowanychNormKodowychReferencjiTekstu(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,false,function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)
if(obiekt=="SZABLON")then
local tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=parametr1,parametr2,parametr3;
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local numer_parametru=szablony_sztucznego_wprowadzenia_tekstu[nazwa_szablonu];
if(numer_parametru)then
local parametr=tabela_parametrow_szablonu[numer_parametru];
if(parametr)then
local czy_modyfikacja=false;
szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa=="div")then
if(p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego(parametr,zawartosc,obiekt,kod))then
czy_modyfikacja=true;
return zawartosc and ZamienNaKody(PrzetwarzanieZnacznikowe(zawartosc,true),false) or "";
end;
end;
end;
return nil,true;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
if(czy_modyfikacja)then
return szablon;
end;
end;
end;
local function AnalizaSzablonu(szablon)
local wynik=p.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
if(wynik)then return wynik;end;
if(szablony_do_usuwania_z_tekstu[nazwa_szablonu])then return "";end;
local czy_szablony_bez_generowania_napisowego=tab_szablony_bez_generowania_napisowego[nazwa_szablonu];
if(czy_szablony_bez_generowania_napisowego)then return "";end;
if(szablony_nie_typowo_linkowe[nazwa_szablonu])then return "";end;
--if(mw.ustring.match(nazwa_szablonu,"/"))then return "";end;
end;
local szablon2=AnalizaSzablonu(szablon);
if(szablon2)then return szablon2;end;
local czy_center;
szablon,czy_center=UsuwanieZnacznikowe(szablon2 or szablon,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) or szablon2;
if(szablon)then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=nil;
end;
end;
local wynik,tabela_parametrow_szablonu=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local szablon_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(szablon_ce)then
local zawartosc=tabela_parametrow_szablonu[szablon_ce];
if((zawartosc)and(p.CzyJestNapisWprowadzeniaTekstu(zawartosc) or p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)))then
return zawartosc,tabela_parametrow_szablonu;
end;
end;
return nil,tabela_parametrow_szablonu;
end);
if(wynik)then return wynik;end;
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
return nil;
elseif(czy_center)then
local szablon_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(szablon_ce)then
local zawartosc=tabela_parametrow_szablonu[szablon_ce];
if((zawartosc)and(p.CzyJestNapisWprowadzeniaTekstu(zawartosc) or p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)))then
return zawartosc;
else
return nil;
end;
else
return nil;
end;
end;
local znacznik_numer=znaczniki_szablonowe[nazwa_szablonu];
if(znacznik_numer)then
local parametr=tabela_parametrow_szablonu[znacznik_numer];
if(parametr)then
return ZamienNaKody(parametr,true);
end;
end;
end;
local wynik=FuncSzablon(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow);
if(wynik)then return wynik,nil,true;end;
return nil,true;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,atrybuty=parametr1,parametr2,parametr3;
if((nazwa~="center")and(not znaczniki_wprowadzenia_tekstu[nazwa]))then
if((nazwa~="ref")and(nazwa~="br")and(nazwa~="hr"))then
local fun=function()
if(nazwa~="div")then
return zawartosc and ZamienNaKody(PrzetwarzanieZnacznikowe(zawartosc,true),false) or "";
elseif((zawartosc)and(zawartosc~=""))then
if(not p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego(tekst,zawartosc,obiekt,kod))then
local ile1;local ile2;
zawartosc,ile1=mw.ustring.gsub(zawartosc,"^([^\n]+\n)",function(s)
if(not mw.ustring.match(s,"^%s*$"))then return PrzetwarzanieZnacznikowe(s,true).."\n\n";end;
return "\n";
end);
zawartosc,ile2=mw.ustring.gsub(zawartosc,"([^\n]+)$",function(s)
if(not mw.ustring.match(s,"^%s*$"))then return "\n\n"..s;end;
return "";
end);
return ZamienNaKody(zawartosc,false);
else
return zawartosc and ZamienNaKody(PrzetwarzanieZnacznikowe(zawartosc,true),false) or "";
end;
else
return "";
end;
end;
return fun,nil,true;
end;
else
if((zawartosc)and(p.CzyJestNapisWprowadzeniaTekstu(zawartosc) or p.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc)))then
return zawartosc,nil,true;
end;
local szablon,czy_center=UsuwanieZnacznikowe(szablon,obiekt,kod,nazwa,zawartosc,atrybuty);
if(szablon)then
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[100];
if(tablica_danych_parametrow_szablonu_strony_numer)then
tablica_danych_parametrow_szablonu_strony_numer[kod]=nil;
end;
end;
end;
return nil,true;
elseif(obiekt=="INNEPRE")then
if(mw.ustring.match(szablon,"^%s*$"))then
return "",nil,true;
end;
return nil,true;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
local tak=false;
szablon=szablonowe_modul:KodowanieNiezakodowanychNormKodowychReferencjiTekstu(szablon,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,false,function(szablon,obiekt,kod,parametr1,parametr2,parametr3)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if((nazwa_szablonu=="Br")or(nazwa_szablonu=="Hr"))then
return " ";
else
local nazwa_zmiennej=znaczniki_szablonowe[nazwa_szablonu];
if(nazwa_zmiennej)then
local zawartosc=tabela_parametrow_szablonu[nazwa_zmiennej];
return zawartosc or " ";
end;
end;
end);
if(wynik)then return wynik,nil,true;end;
elseif(obiekt=="ZNACZNIK")then
tak=true;
local nazwa,zawartosc,atrybuty=parametr1,parametr2,parametr3;
if((nazwa=="br")or(nazwa=="hr"))then
return " ",nil,true;
else
return zawartosc or "",nil,true;
end;
end;
return nil,true;
end);
if(tak)then
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
end;
local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik=stronicowyparser_analizaaspisurzeczy_modul.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true);
if(not czy_element_spisu)then return "",nil,true;end;
elseif(obiekt=="WIKITABELA")then
szablon=mw.ustring.match(szablon,"^{|(.-)|}$");
szablon=mw.ustring.gsub(szablon,"^[^\n]+","");
--szablon=mw.ustring.gsub(szablon,"[|!][|!]","\n\n");
szablon=mw.ustring.gsub(szablon,"\n|[%-%+]?[^%S\n]*[^|\n]*|([^|\n]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end);
szablon=mw.ustring.gsub(szablon,"\n|%-([^|\n]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end);
szablon=mw.ustring.gsub(szablon,"\n|%-[^%S\n|]*","\n\n");
szablon=mw.ustring.gsub(szablon,"||([^|\n]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end)
szablon=mw.ustring.gsub(szablon,"\n|%+[^%S\n]*([^\n]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end);
szablon=mw.ustring.gsub(szablon,"\n|([^\n|]+)",function(komorka)
return PrzetwarzanieZnacznikowe(komorka);
end);
return szablon,nil,true;
end;
return nil,true;
end,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)
tekst_rozwiniety_calego_artykulu=szeregi_modul.ZamianaZnakowaLinii(tekst_rozwiniety_calego_artykulu,function(linia)
local linia_nie_nil=mw.ustring.match(linia,wzor);
if(linia_nie_nil)then
local tak=nil;
local linia_tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(linia_nie_nil,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if((nazwa_szablonu=="Br")or(nazwa_szablonu=="Hr"))then
tak=true;
return " ";
end;
local szablon_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(szablon_ce)then
local tekst=tabela_parametrow_szablonu[szablon_ce];
if(tekst)then
tak=true;
return tekst;
end;
end;
end);
if(wynik)then return wynik,nil,true;end;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((nazwa=="br")or(nazwa=="hr"))then
tak=true;
return " ",nil,true;
elseif((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
tak=true;
return zawartosc or "",nil,true;
end;
elseif(obiekt=="PRE")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
zawartosc=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
if(czy_dodatni_rozdzial)then
local zawartosc=mw.ustring.gsub(zawartosc,"\n"," ");
tak=true;
return zawartosc,nil,true;
else
tak=true;
return zawartosc,nil,true;
end;
else
tak=true;
return "",nil,true;
end;
elseif(obiekt=="ŹRÓDŁO")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
zawartosc=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
if(czy_dodatni_rozdzial)then
local zawartosc=mw.ustring.gsub(zawartosc,"\n"," ");
tak=true;
return zawartosc,nil,true;
else
tak=true;
return zawartosc,nil,true;
end;
else
tak=true;
return "",nil,true;
end;
elseif(obiekt=="NOWIKI")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
zawartosc=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
local zawartosc=mw.ustring.gsub(zawartosc,"\n"," ");
tak=true;
return zawartosc,nil,true;
else
tak=true;
return "",nil,true;
end;
end;
return nil,true;
end,nil,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,nil,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
return linia_tekst;
else
return nil;
end;
end);
end;
-----
LiniaRozdzialyDodatnieOrazUjemne("^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$",true);
LiniaRozdzialyDodatnieOrazUjemne("^([%*#;:]+[^\n]*)$",false);
tekst_rozwiniety_calego_artykulu=szablonowe_modul:ModyfikowanieKodowoSzablonoweZakodowanegoTekstu(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,
function(szablon,obiekt,kod,poziom_iteracji,szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica)
if(obiekt=="SZABLON")then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu])then
return "\n\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod).."\n\n ";
else
local numer_parametru=szablony_sztucznego_wprowadzenia_tekstu[nazwa_szablonu];
if(numer_parametru)then
local parametr=tabela_parametrow_szablonu[numer_parametru];
if(parametr)then
local naglowek=p.NapisWprowadzeniaTekstuHNumer(parametr);
if(naglowek)then
local obiekt_hnumer="ZNACZNIK";
local kod_hnumer=(#(tablica_analizy_obiektow_strony_dany_modul[obiekt_hnumer] or {}))+1;
return "\n\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt_hnumer,kod_hnumer).."\n\n ",naglowek,obiekt_hnumer,kod_hnumer;
end;
end;
end;
end;
end);
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then
return "\n\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod).."\n\n ";
end;
elseif(obiekt=="INNEPRE")then
return "\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod).."\n";
elseif((obiekt=="PRE")or(obiekt=="ŹRÓDŁO")or(obiekt=="GALERIA")or(obiekt=="MAPAOBRAZU")or(obiekt=="PUDEŁKOWEJŚCIA"))then
return "\n\n"..szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod).."\n\n ";
end;
end,nil,nil,nil,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
-----
end;
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"<!%-%-.-%-%->","");
local tab_magiczne_derektywy=stronicowyparser_obiekty_modul.magiczne_derektywy;
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"__(%u+)__",function(derektywy)
return tab_magiczne_derektywy[derektywy] and "" or nil;
end);
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"^(%-%-%-%-+)[^%S\n]*([^\n]+)","%1\n %2");
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"\n(%-%-%-%-+)[^%S\n]*([^\n]+)","\n%1\n %2");
--tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,"\n\n","\n\n");
if(czy_dalej_rozwazac_zakodowane)then
----
tekst_rozwiniety_calego_artykulu=p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE);
tekst_rozwiniety_calego_artykulu=__FUNKCJA_ANALIZA_SPISU and __FUNKCJA_ANALIZA_SPISU(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or tekst_rozwiniety_calego_artykulu;
end;
--mw.log( tekst_rozwiniety_calego_artykulu)
--local iter_main=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"\n([^\n]*)\n");
local iter_main=szeregi_modul.IteratorLiniiTekstu(tekst_rozwiniety_calego_artykulu);
local naglowek_aktualnego_rozdzialu;
local linia_naglowka_aktualnego_rozdzialu;
local poziom_aktualnego_rozdzialu;
local poczatek_aktualnego_rozdzialu;
local numeracja_aktualnego_rozdzialu;
local czy_rozdzial_aktualny_centrowany;
local czy_koniec=false;
----
local odczyt_jakie_spisy_tresci=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu;
local jakie_spisy_tresci=parametry_modul["KopiujTabelęElementów"](odczyt_jakie_spisy_tresci);
setmetatable(jakie_spisy_tresci,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local czy_ce_spis_tresci=nil;
----
local czy_w_spisie_tresci=((not czy_inne_rozdzialy_analizowac)and true or nil);
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local parser=p.ParserPodawaniaNapisuWprowadzeniaTekstu(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
-----
local tak_ce_spis_tresci=nil;
local m=0;
local function Wystepowanie(linia,funkcja1,funkcja2)
local czy_znaleziono_okladka=false;
local function RozwazajLinie(szablon,obiekt,kod)
if(szablon)then
local tab_2,numer_rodzaju_artykulu,id,parametry,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,p.__FUNKCJA_KOMPLETOWANIA);
if(not kom)then
local tab=((tab_2 and tab_2[1]) and tab_2 or nil);
if(tab)then
local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab[1],false);
local czy_okladka=mw.ustring.match(artykul,stronicowyparser_obiekty_modul.artykularne_niespisowe[1]);
if((artykul~="")and((numer_rodzaju_artykulu~=1)or((numer_rodzaju_artykulu==1)and(not czy_okladka))))then
return 1;
elseif(czy_okladka)then
czy_znaleziono_okladka=true;
end;
end;
else
return 0;
end;
end;
end;
local function RozwazajLinieZnacznikowe(zawartosc)
local wartosc;
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(zawartosc,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst)
local function CenterZnacznikLinia(szablon,obiekt,kod)
wartosc=RozwazajLinie(szablon,obiekt,kod);
if(not wartosc)then return;end;
if(wartosc==1)then return nil;end;
return szablon,tekst;
end;
if(obiekt=="SZABLON")then
local szablon,tekst=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local szablon,tekst=CenterZnacznikLinia(szablon,obiekt,kod);
return szablon,tekst;
end);
return szablon,tekst;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
local szablon,tekst=CenterZnacznikLinia(szablon,obiekt,kod);
return szablon,tekst;
end;
end);
for szablon,obiekt,kod in iter do end;
return wartosc;
end;
local szablon_spis_tresci;
local function spis_tresci(wystepowanie_linkow,hn_number)
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(wystepowanie_linkow,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iter do
local function Spis(szablon,obiekt,kod)
local tab_2,numer_rodzaju_artykulu,id,parametry,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,p.__FUNKCJA_KOMPLETOWANIA);
if(not kom)then
local tab=((tab_2 and tab_2[1]) and tab_2 or nil);
if((tab)and(numer_rodzaju_artykulu==1)and(stronicowyparser_analizaaspisurzeczy_modul.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab[1],false))))then
tak_ce_spis_tresci=hn_number;
szablon_spis_tresci=wystepowanie_linkow;
return 1;
end;
else
return 0;
end;
end;
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local wynik=Spis(szablon,obiekt,kod);
if(wynik)then return wynik;end;
end);
if(wynik)then return wynik;end;
elseif((obiekt=="LINKW")or(obiekt=="LINKZ"))then
local wynik=Spis(szablon,obiekt,kod);
if(wynik)then return wynik;end;
end;
end;
wystepowanie_linkow=czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(wystepowanie_linkow,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul) or wystepowanie_linkow;
wystepowanie_linkow=mw.text.trim(wystepowanie_linkow);
local czy_ce=jakie_spisy_tresci[wystepowanie_linkow];
if(czy_ce)then
tak_ce_spis_tresci=hn_number;
szablon_spis_tresci=wystepowanie_linkow;
return 1;
end;
end;
local wystepowanie_linkow=mw.ustring.match(linia,"^[#:%*;%d%.>]+%s*(.+)$") or mw.ustring.match(linia,"^(%S+%s*.+)$");
local tak=nil;
if(czy_dalej_rozwazac_zakodowane)then
if(wystepowanie_linkow)then
local czy_rozdzial=nil;local wartosc=nil;
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(wystepowanie_linkow,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst)
local czy_linkw=(obiekt=="LINKW");local czy_linkz=(obiekt=="LINKZ");local czy_szablon=(obiekt=="SZABLON");local czy_znacznik=(obiekt=="ZNACZNIK");
if(czy_linkw or czy_linkz or czy_szablon or czy_znacznik)then
local podrecznik=nil;
if(czy_szablon)then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
-----
local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu];
if(czy_ce)then
local szablon_spis_tresci_zawartosc=tabela_parametrow_szablonu[czy_ce];
if(szablon_spis_tresci_zawartosc)then
szablon_spis_tresci_zawartosc=mw.ustring.match(szablon_spis_tresci_zawartosc,"^'*%s*(.-)%s*'*$");
wartosc=spis_tresci(szablon_spis_tresci_zawartosc,true);
else
wartosc=RozwazajLinie(szablon,obiekt,kod);
end;
else
wartosc=RozwazajLinie(szablon,obiekt,kod);
if(wartosc)then podrecznik=true;else podrecznik=false;end;
end;
end);
elseif(czy_znacznik)then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
if(nazwa=="center")then
szablon_spis_tresci=mw.ustring.match(zawartosc,"^'*%s*(.-)%s*'*$");
wartosc=spis_tresci(szablon_spis_tresci,true);
elseif(znaczniki_wprowadzenia_tekstu[nazwa])then
szablon_spis_tresci=mw.ustring.match(zawartosc,"^'*%s*(.-)%s*'*$");
local hn_number=p.HnNumerWprowadzeniaTekstu(nazwa,atrybuty)
wartosc=spis_tresci(szablon_spis_tresci,hn_number);
else
wartosc=RozwazajLinieZnacznikowe(zawartosc);
end;
end;
else
wartosc=RozwazajLinie(szablon,obiekt,kod);
if(wartosc)then podrecznik=true;else podrecznik=false;end;
end;
if(podrecznik==true)then
if(not czy_rozdzial)then
if(wartosc==1)then
local wystepowanie_linku_lub_szablonu=(mw.ustring.match(tekst,"^'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)))
and(not mw.ustring.match(tekst,"^'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."%s*>"))
and (mw.ustring.match(tekst,"^[^%.]*%s*$"));
if(not wystepowanie_linku_lub_szablonu)then return nil;end;
czy_rozdzial=true;
elseif(wartosc==0)then
local ile;
tekst,ile=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod),"");
return "", ((ile>0) and tekst or nil);
end;
end;
elseif(podrecznik==false)then
if(not wartosc)then
if(czy_znaleziono_okladka)then
local czy_nie_uwzgledniac_linii=mw.ustring.match(tekst,"[%s%p]*<[%s<]-%s*'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod));
if(not czy_nie_uwzgledniac_linii)then
local tekst,ile=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod),"");
return "", ((ile>0) and tekst or nil);
else
czy_znaleziono_okladka=false;
end;
else
local tekst,ile=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod),"");
return "", ((ile>0) and tekst or nil);
end;
end;
end;
if(not wartosc)then return;end;
tak=tak or (wartosc==1);
if(tak)then return;end;
return szablon,tekst;
else
local tekst,ile=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod),"");
return "", ((ile>0) and tekst or nil);
end;
end);
for szablon,obiekt,kod in iter do end;
end;
end;
if(tak)then
funkcja1(szablon_spis_tresci);
else
funkcja2();
end;
end
return function()
local tab_str={};
local linia;
local function IterMain()
for linia in iter_main do
local nazwa_rozdzialu;local poziom_rozdzialu;local poczatek_rozdzialu;local numeracja_rozdzialu;local czy_rozdzial_centrowany;
---------------------------------------
nazwa_rozdzialu=mw.ustring.match(linia,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$");
if(nazwa_rozdzialu) then
nazwa_rozdzialu,poziom_rozdzialu=p.PodajNapisPoziomuWprowadzeniaTekstu(nazwa_rozdzialu);
end;
if(not nazwa_rozdzialu)then
if(czy_inne_rozdzialy_analizowac)then
if(not czy_w_spisie_tresci)then
Wystepowanie(linia,function(szablon_spis_tresci)
if(not tak_ce_spis_tresci)then
nazwa_rozdzialu="Spis treści";
poziom_rozdzialu=nil;
table.insert(tab_str,linia);
else
if(szablon_spis_tresci)then
local numeracja,rozdzial=p.NumeracjaOrazTekstWprowadzeniaTekstu(szablon_spis_tresci);
if((numeracja)and(rozdzial))then
numeracja_rozdzialu=numeracja;
nazwa_rozdzialu=rozdzial;
else
nazwa_rozdzialu=szablon_spis_tresci;
numeracja_rozdzialu=nil;
end;
else
nazwa_rozdzialu="Spis treści";
numeracja_rozdzialu=nil;
end;
local czy_rozdzial_naglowka_hn=tonumber(tak_ce_spis_tresci);
poziom_rozdzialu=czy_rozdzial_naglowka_hn or 2;
czy_rozdzial_centrowany=(not czy_rozdzial_naglowka_hn)and true or false;
poczatek_rozdzialu=nil;
--str="";
end;
end,function()
nazwa_rozdzialu=nil;
end);
end;
if(not nazwa_rozdzialu)then
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
end;
else
nazwa_rozdzialu=nil;
end;
end;
if(nazwa_rozdzialu)then
czy_w_spisie_tresci=true;
if(not naglowek_aktualnego_rozdzialu)then
naglowek_aktualnego_rozdzialu=nazwa_rozdzialu;
linia_naglowka_aktualnego_rozdzialu=linia;
poziom_aktualnego_rozdzialu=poziom_rozdzialu;
poczatek_aktualnego_rozdzialu=poczatek_rozdzialu;
numeracja_aktualnego_rozdzialu=numeracja_rozdzialu;
czy_rozdzial_aktualny_centrowany=czy_rozdzial_centrowany;
else
----------------------------------------------
local naglowek_posredni_aktualnego_rozdzialu=naglowek_aktualnego_rozdzialu;
local linia_naglowka_posredni_aktualnego_rozdzialu=linia_naglowka_aktualnego_rozdzialu;
local poziom_posredni_aktualnego_rozdzialu=poziom_aktualnego_rozdzialu;
local poczatek_posredni_aktualnego_rozdzialu=poczatek_aktualnego_rozdzialu;
local numeracja_posredni_aktualnego_rozdzialu=numeracja_aktualnego_rozdzialu;
local czy_rozdzial_posredni_centrowany=czy_rozdzial_aktualny_centrowany;
----------------------------------------------
naglowek_aktualnego_rozdzialu=nazwa_rozdzialu;
linia_naglowka_aktualnego_rozdzialu=linia;
poziom_aktualnego_rozdzialu=poziom_rozdzialu;
poczatek_aktualnego_rozdzialu=poczatek_rozdzialu;
numeracja_aktualnego_rozdzialu=numeracja_rozdzialu;
czy_rozdzial_aktualny_centrowany=czy_rozdzial_centrowany;
local str=table.concat(tab_str,"\n");
if(not __FUNKCJA2)then
naglowek_posredni_aktualnego_rozdzialu=naglowek_posredni_aktualnego_rozdzialu
and (czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(naglowek_posredni_aktualnego_rozdzialu,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul)
or naglowek_posredni_aktualnego_rozdzialu
)
or nil;
str=str and (czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(str,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul) or str) or nil;
elseif(czy_dalej_rozwazac_zakodowane)then
naglowek_posredni_aktualnego_rozdzialu=naglowek_posredni_aktualnego_rozdzialu and __FUNKCJA2(naglowek_posredni_aktualnego_rozdzialu,nil,tablica_analizy_obiektow_strony_dany_modul,true) or nil;
str=str and __FUNKCJA2(str,nil,tablica_analizy_obiektow_strony_dany_modul,false) or nil;
end;
--linia_poprz=nil;
m=m+1;
return {naglowek_posredni_aktualnego_rozdzialu,linia_naglowka_posredni_aktualnego_rozdzialu,},str,poziom_posredni_aktualnego_rozdzialu,poczatek_posredni_aktualnego_rozdzialu,numeracja_posredni_aktualnego_rozdzialu,czy_rozdzial_posredni_centrowany;
end;
else
if(naglowek_aktualnego_rozdzialu)then
table.insert(tab_str,linia);
end;
--linia_poprz=linia;
end;
end;
if(czy_koniec)then return nil;end;
czy_koniec=true;
---
local str=table.concat(tab_str,"\n");
--
if(not __FUNKCJA2)then
naglowek_aktualnego_rozdzialu=naglowek_aktualnego_rozdzialu
and (czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(naglowek_aktualnego_rozdzialu,nil,tablica_analizy_obiektow_strony_dany_modul)
or naglowek_aktualnego_rozdzialu
)
or nil;
str=str and (czy_dalej_rozwazac_zakodowane and szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(str,nil,tablica_analizy_obiektow_strony_dany_modul) or str) or nil;
elseif(czy_dalej_rozwazac_zakodowane)then
naglowek_aktualnego_rozdzialu=naglowek_aktualnego_rozdzialu and __FUNKCJA2(naglowek_aktualnego_rozdzialu,nil,tablica_analizy_obiektow_strony_dany_modul,true) or nil;
str=str and __FUNKCJA2(str,nil,tablica_analizy_obiektow_strony_dany_modul,false) or nil;
end;
--linia_nast=nil;linia_poprz=nil;
m=m+1;
return (naglowek_aktualnego_rozdzialu and {naglowek_aktualnego_rozdzialu,linia_naglowka_aktualnego_rozdzialu,} or nil),str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end;
----
local naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany=IterMain();
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
return p;
72db4dlmneqh81xdxuwgjpb03oje02u
Moduł:StronicowyParser/SpisTreści
828
58945
557810
557805
2026-09-28T12:41:51Z
Persino
2851
557810
Scribunto
text/plain
local p={};
local function Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2)
local parametry_modul=require("Module:Parametry");
local ile=0;
for i,tabela_rozdzial_artykulow2_i in pairs(tabela_rozdzial_artykulow2)do
i=parametry_modul.TypeNumber(i) and i or nil;
if((i)and(i>1))then
ile=ile+#(tabela_rozdzial_artykulow2_i or {});
end;
end;
return ile;
end;
local function WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY,tabela_rozdzial_artykulow2,tablica_artykulow_zebranych,wliczaj_artykuly_tego_rozdzialu,szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,--[[]]przedrostek_listy,tekstowy_przedrostek,w_rozdziale,linia_artykokow--[[]])
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local tab_pozycja_elementow_w_spisie_rzeczy,numer_rodzaju_artykulu,id,parametry_szablonu,kom,czy_nazwy_rozwiniete=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,nil);
---
local numer_rodzaju_artykulu_poprz=numer_rodzaju_artykulu;
if(numer_rodzaju_artykulu)then
--mw.log(szablon,numer_rodzaju_artykulu,wliczaj_artykuly_tego_rozdzialu)
numer_rodzaju_artykulu=(wliczaj_artykuly_tego_rozdzialu)and numer_rodzaju_artykulu or (numer_rodzaju_artykulu+6);
end;
---
--Rozdzialy początek
local znaki_niedozwolone;
local function ParametrPierwszy(tab_artykul,czy_niedozwolone)
local artykul=tab_artykul[1];
local parametry=tab_artykul[2];
local naglowek=tab_artykul[3];
local tablica_przekierowania=tab_artykul[4];
----
local znaki_niedozwolone;
if(czy_niedozwolone)then
znaki_niedozwolone=mw.ustring.match(artykul,"[|<>{}%[%]]");
end;
----
--if(artykul)then
--artykul=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(artykul,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
--artykul=parametry_modul["Odstępy"]{[1]=artykul,[2]="tak",}
--artykul=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](artykul);
--end;
----
--if(parametry)then
-- parametry=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(parametry,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul)
-- parametry=parametry_modul["Odstępy"]{[1]=parametry,[2]="tak",}
-- parametry=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](parametry);
--end;
----
--if(naglowek)then
-- naglowek=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(naglowek,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
-- naglowek=parametry_modul["Odstępy"]{[1]=naglowek,[2]="tak",}
-- naglowek=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](naglowek);
--end;
----
tab_artykul=((artykul)and(parametry or naglowek))and{[1]=artykul,[2]=parametry,[3]=naglowek,["LINK"]=true,} or artykul;
return tab_artykul,znaki_niedozwolone,tablica_przekierowania;
end;
local parametry_modul=require("Module:Parametry");
----
if((numer_rodzaju_artykulu_poprz)and(numer_rodzaju_artykulu_poprz==1)and(tab_pozycja_elementow_w_spisie_rzeczy)and(tab_pozycja_elementow_w_spisie_rzeczy[1]))then
local numer_rodzaju_artykulu_w_podreczniku=numer_rodzaju_artykulu+1;
local czy_tablica=nil;local tablica_przekierowania=nil;
if(tab_pozycja_elementow_w_spisie_rzeczy[1])then
czy_tablica=parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1]);
if(not czy_tablica)then
--tab_pozycja_elementow_w_spisie_rzeczy[1]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[1],pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
--tab_pozycja_elementow_w_spisie_rzeczy[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[1],[2]="tak",}
--tab_pozycja_elementow_w_spisie_rzeczy[1]=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tab_pozycja_elementow_w_spisie_rzeczy[1]);
znaki_niedozwolone=mw.ustring.match(tab_pozycja_elementow_w_spisie_rzeczy[1],"[|<>{}%[%]]");
tablica_artykulow_zebranych={tab_pozycja_elementow_w_spisie_rzeczy[1],0,false,};
else
tab_pozycja_elementow_w_spisie_rzeczy[1],znaki_niedozwolone,tablica_przekierowania=ParametrPierwszy(tab_pozycja_elementow_w_spisie_rzeczy[1],true);
local czy_inna_ksiazka=tablica_przekierowania and tablica_przekierowania[1] and tablica_przekierowania[1][5] or nil;
if(not czy_inna_ksiazka)then
czy_tablica=parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1]);
else
local artykul=tablica_przekierowania[2];
local parametry=tablica_przekierowania[3];
local naglowek=tablica_przekierowania[4];
czy_tablica=(artykul)and(parametry or naglowek);
end;
if(not czy_tablica)then
local aktualny_artykul_ksiazki;
if(not czy_inna_ksiazka)then
aktualny_artykul_ksiazki=tab_pozycja_elementow_w_spisie_rzeczy[1];
else
aktualny_artykul_ksiazki=tablica_przekierowania[2]
or (parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1])and tab_pozycja_elementow_w_spisie_rzeczy[1][1] or tab_pozycja_elementow_w_spisie_rzeczy[1]);
end;
tablica_artykulow_zebranych={aktualny_artykul_ksiazki,0,false,};
else
local aktualny_artykul_ksiazki;
if(not czy_inna_ksiazka)then
aktualny_artykul_ksiazki=tab_pozycja_elementow_w_spisie_rzeczy[1][1];
else
aktualny_artykul_ksiazki=tablica_przekierowania[2]
or (parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1])and tab_pozycja_elementow_w_spisie_rzeczy[1][1] or tab_pozycja_elementow_w_spisie_rzeczy[1]);
end;
if(tablica_artykulow_zebranych[1]~=aktualny_artykul_ksiazki)then
tablica_artykulow_zebranych={aktualny_artykul_ksiazki,0,false,};
else
tablica_artykulow_zebranych[3]=true;
end;
end;
end;
end;
----
local szablonowe_modul=require("Module:Szablonowe");
----
if((not czy_nazwy_rozwiniete)and(tab_pozycja_elementow_w_spisie_rzeczy[2]))then
local stronicowyparser_pomocne_modul=require("Module:StronicowyParser/Pomocne");
tab_pozycja_elementow_w_spisie_rzeczy[2]=stronicowyparser_pomocne_modul.DekodowanieTekstuNazwLinku(tab_pozycja_elementow_w_spisie_rzeczy[2],pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci);
end;
----
if(znaki_niedozwolone)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"niedozwolone znaki w spisach treści"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"niedozwolone znaki w spisach treści");
end;
end;
local nazwa_jednostki=stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(tab_pozycja_elementow_w_spisie_rzeczy[1],false);
local stara_nazwa_jednostki=nazwa_jednostki;
if(not tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku])then tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku]={};end;
--local linia_artykokow=--[[(not przerwij) and ]]tab_linia[k]--[[ or szablon]];
linia_artykokow=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(linia_artykokow,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
--local przekierowanie=pelna_nazwa_ksiazki..((nazwa_jednostki~="") and ("/"..nazwa_jednostki) or "");
--local strona=techniczne_modul.PrzekierowanieDoStrony(przekierowanie);
--local strona=(tablica_przekierowania)
local przekierowanie;
if(--[[strona--]]tablica_przekierowania)then
--nazwa_jednostki=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
--przekierowanie=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](przekierowanie)
przekierowanie=tablica_przekierowania[2];
if((czy_tablica)and(stara_nazwa_jednostki~=""))then
przekierowanie=przekierowanie and ((tablica_przekierowania[3] or tablica_przekierowania[4])
and {przekierowanie, tablica_przekierowania[3], tablica_przekierowania[4],["LINK"]=true,}
or przekierowanie
)
or nil;
nazwa_jednostki={nazwa_jednostki, tab_pozycja_elementow_w_spisie_rzeczy[1][2], tab_pozycja_elementow_w_spisie_rzeczy[1][3],["LINK"]=true,};
local czy_w_tab=tablica_artykulow_zebranych[2];
local czy_wsadzac=tablica_artykulow_zebranych[3];
if((not czy_wsadzac)and(czy_w_tab==0)and(tablica_artykulow_zebranych[1]==stara_nazwa_jednostki))then
local tab_stare={{stara_nazwa_jednostki,tab_pozycja_elementow_w_spisie_rzeczy[2],tablica_przekierowania and (tablica_przekierowania[2] and przekierowanie or nil) or nil,((tablica_przekierowania)and(tablica_przekierowania[1])) and tablica_przekierowania[1] or nil,nil,nil,tab_pozycja_elementow_w_spisie_rzeczy[5],true,tab_pozycja_elementow_w_spisie_rzeczy[6],},{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,true,};
--table.insert(tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku],tab_stare);
--WsadzanieParametryDoTablicy(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
tablica_artykulow_zebranych[2]=1;
end;
end;
else
nazwa_jednostki=tab_pozycja_elementow_w_spisie_rzeczy[1];
if((czy_tablica)and(stara_nazwa_jednostki~=""))then
local czy_w_tab=tablica_artykulow_zebranych[2];
local czy_wsadzac=tablica_artykulow_zebranych[3];
if((not czy_wsadzac)and(czy_w_tab==0)and(tablica_artykulow_zebranych[1]==stara_nazwa_jednostki))then
local tab_stare={{stara_nazwa_jednostki,tab_pozycja_elementow_w_spisie_rzeczy[2],nil,nil,nil,nil,tab_pozycja_elementow_w_spisie_rzeczy[5],true,tab_pozycja_elementow_w_spisie_rzeczy[6],},{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,true,};
--table.insert(tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku],tab_stare);
--WsadzanieParametryDoTablicy(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
tablica_artykulow_zebranych[2]=1;
end;
end;
end;
local ile_dodac_do_poziomu_artykulu=tablica_artykulow_zebranych[2];
local ile_dodac_do_poziomu_artykulu_lub_nil=((ile_dodac_do_poziomu_artykulu)and(ile_dodac_do_poziomu_artykulu>0))and ile_dodac_do_poziomu_artykulu or nil;
local tab_stare={((tab_pozycja_elementow_w_spisie_rzeczy[2] or tablica_przekierowania or tab_pozycja_elementow_w_spisie_rzeczy[5] or tab_pozycja_elementow_w_spisie_rzeczy[6] or ile_dodac_do_poziomu_artykulu_lub_nil) and ({nazwa_jednostki,tab_pozycja_elementow_w_spisie_rzeczy[2],tablica_przekierowania and (tablica_przekierowania[2] and przekierowanie or nil) or nil,((tablica_przekierowania)and(tablica_przekierowania[1])) and tablica_przekierowania[1] or nil,nil,nil,tab_pozycja_elementow_w_spisie_rzeczy[5],ile_dodac_do_poziomu_artykulu_lub_nil,tab_pozycja_elementow_w_spisie_rzeczy[6],}) or nazwa_jednostki),{#przedrostek_listy--[[+(ile_dodac_do_poziomu_artykulu and ile_dodac_do_poziomu_artykulu or 0)]],przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,true,(numer_rodzaju_artykulu>1) and (Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2)) or nil,};
--table.insert(tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku],tab_stare);
--WsadzanieParametryDoTablicy(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
--mw.logObject(tab_stare,"TYTAN1")
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
--mw.logObject(tabela_rozdzial_artykulow2,"TYTAN2")
elseif((numer_rodzaju_artykulu_poprz)and(numer_rodzaju_artykulu_poprz>=2)and(tab_pozycja_elementow_w_spisie_rzeczy)and(tab_pozycja_elementow_w_spisie_rzeczy[1]))then
if(tab_pozycja_elementow_w_spisie_rzeczy[1])then
if(not parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1]))then
--tab_pozycja_elementow_w_spisie_rzeczy[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[1],[2]="tak",};
--tab_pozycja_elementow_w_spisie_rzeczy[1]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[1],pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
else
tab_pozycja_elementow_w_spisie_rzeczy[1]=ParametrPierwszy(tab_pozycja_elementow_w_spisie_rzeczy[1],false);
end;
end;
local szablonowe_modul=require("Module:Szablonowe");
if((not czy_nazwy_rozwiniete)and(tab_pozycja_elementow_w_spisie_rzeczy[2]))then
local stronicowyparser_pomocne_modul=require("Module:StronicowyParser/Pomocne");
tab_pozycja_elementow_w_spisie_rzeczy[2]=stronicowyparser_pomocne_modul.DekodowanieTekstuNazwLinku(tab_pozycja_elementow_w_spisie_rzeczy[2],pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci);
end;
if(tab_pozycja_elementow_w_spisie_rzeczy[3])then
tab_pozycja_elementow_w_spisie_rzeczy[3]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[3],pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
tab_pozycja_elementow_w_spisie_rzeczy[3]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[3],[2]="tak",[4]="tak",};
end;
if(tab_pozycja_elementow_w_spisie_rzeczy[4])then
tab_pozycja_elementow_w_spisie_rzeczy[4]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[4],pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
tab_pozycja_elementow_w_spisie_rzeczy[4]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[4],[2]="tak",[4]="tak",};
end;
local wiki_modul=require("Module:Wiki");
-----
local numer_rodzaju_artykulow_w_nie_podreczniku=numer_rodzaju_artykulu+1;
-----
if(not tabela_rozdzial_artykulow2[numer_rodzaju_artykulow_w_nie_podreczniku])then
tabela_rozdzial_artykulow2[numer_rodzaju_artykulow_w_nie_podreczniku]={};
end;
--local linia_artykokow=--[[(not przerwij) and ]]tab_linia[k]--[[ or szablon]];
linia_artykokow=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(linia_artykokow,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
local tab_stare={((tab_pozycja_elementow_w_spisie_rzeczy[1])and((tab_pozycja_elementow_w_spisie_rzeczy[2])or(tab_pozycja_elementow_w_spisie_rzeczy[3])or(tab_pozycja_elementow_w_spisie_rzeczy[4])or(tab_pozycja_elementow_w_spisie_rzeczy[5])or(tab_pozycja_elementow_w_spisie_rzeczy[6])))and({tab_pozycja_elementow_w_spisie_rzeczy[1],tab_pozycja_elementow_w_spisie_rzeczy[2],nil,nil,tab_pozycja_elementow_w_spisie_rzeczy[3],tab_pozycja_elementow_w_spisie_rzeczy[4],tab_pozycja_elementow_w_spisie_rzeczy[5],nil,tab_pozycja_elementow_w_spisie_rzeczy[6],}) or tab_pozycja_elementow_w_spisie_rzeczy[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,false,Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2),};
--table.insert(tabela_rozdzial_artykulow2[numer_rodzaju_artykulow_w_nie_podreczniku],tab_stare);
--WsadzanieParametryDoTablicy(tabela_rozdzial_artykulow2,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare);
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare);
end;
--mw.logObject(tabela_rozdzial_artykulow2,"TYTAN")
return numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych;
end;
function p.AnalizaNapisuWprowadzeniaTekstu(rozdzial,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local specjalne_modul=require("Module:Specjalne");
local szablonowe_modul=require("Module:Szablonowe");
local html_modul=require("Module:Html");
local parametry_modul=require("Module:Parametry");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local rozdzial_na_tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(rozdzial,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
-----
local szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu;
local szablony_dozwolone_w_nazwach_linkowych=stronicowyparser_obiekty_modul.szablony_dozwolone_w_nazwach_linkowych;
local szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu;
-----
local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
if(wynik)then return wynik;end;
local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_w_nazwach_linkowych,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
if(wynik)then return wynik;end;
----
local dodatek=stronicowyparser_rozdzialy_modul.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
if(dodatek)then return dodatek;end;
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
----
local tab_szablon_link_intelignetny=stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod);
if(tab_szablon_link_intelignetny)then
return (not tab_szablon_link_intelignetny[4]) and tabela_parametrow_szablonu[2] or tabela_parametrow_szablonu[1];
else
local nazwa_zamiast_linku=stronicowyparser_potrzebne_modul.NazwaInnegoSzablonowegoLinkowegoObiektu(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa_zamiast_linku)then return nazwa_zamiast_linku;end;
end;
local nazwa_zamiast_linku=stronicowyparser_potrzebne_modul.NazwaInnegoSzablonowegoLinkowegoSpisuRzeczy(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa_zamiast_linku)then return nazwa_zamiast_linku;end;
----
if(szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu[nazwa_szablonu])then
local szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
return szablon;
end;
end);
if(wynik)then return wynik;end;
----
local rozdzial_na_tekst=mw.ustring.gsub(szablon,"^{{[^{}|]*|([^{}|]*).*}}$","%1");
return rozdzial_na_tekst;
elseif(obiekt=="NOWIKI")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
local rozdzial_na_tekst=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
return rozdzial_na_tekst;
else
return "";
end;
elseif(obiekt=="PRE")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
local rozdzial_na_tekst=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
return rozdzial_na_tekst;
else
return "";
end;
elseif(obiekt=="ŹRÓDŁO")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
local rozdzial_na_tekst=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
return rozdzial_na_tekst;
else
return "";
end;
elseif((obiekt~="MATH")and(obiekt~="GALERIA")and(obiekt~="MAPAOBRAZU")and(obiekt~="INNEPRE"))then
local rozdzial_na_tekst=specjalne_modul["UsuńKomentarze"](szablon);
rozdzial_na_tekst=specjalne_modul["ZamieńLinkiZewnętrzneNaTekst"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["ZamieńLinkiWewnętrzneNaTekst"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńSzablonyStylów"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńZnaczniki"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńKategorie"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńWywołaniaPlików"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńInterwiki"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńZnakiSpecjalne"](rozdzial_na_tekst);
return rozdzial_na_tekst;
else
return "";
end;
end);
----
rozdzial_na_tekst=specjalne_modul["UsuńZnakiSpecjalne"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńZbędneBiałeZnaki"](rozdzial_na_tekst);
return rozdzial_na_tekst;
end;
function p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH)
local parametry_modul=require("Module:Parametry");
if((not nazwa_przestrzeni)or(not nazwa_przestrzeni_ksiazki)or(not nazwa_ksiazki))then return 0;end;
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
local pelna_nazwa_spisu_tresci=pelna_nazwa_ksiazki..((nazwa_spisu_tresci~="")and("/"..nazwa_spisu_tresci) or "");
---
local szablonowe_modul=require("Module:Szablonowe");
local pelna_nazwa_spisu_tresci_szablonowa=szablonowe_modul["SzablonowaKompletnaNazwaStrony"](pelna_nazwa_spisu_tresci);
---
local techniczne_modul=require("Module:Techniczne");
local strona=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_spisu_tresci);
local przekierowanie_spisu_tresci=nil;
local tab_nazwa_spisow_przekierowaniowych={};
--[[if(adres_ksiazki_glownego_spisu_tresci)then
if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni]={};end;
if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki]={};end;
if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki]=true;end;
end;]]
--if(adres_ksiazki_glownego_spisu_tresci)then
-- 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(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni]={};end;
-- if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki]={};end;
-- if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki]=true;end;
-- end;
if(strona)then
local html_modul=require("Module:Html");
strona=html_modul.DecodeHtml(strona,true);
local tabela_nazw={};
local pelna_nazwa_ksiazki_przekierowania=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](strona,tabela_nazw);
if(pelna_nazwa_ksiazki_przekierowania~=pelna_nazwa_ksiazki)then return 0;end;
pelna_nazwa_spisu_tresci=nazwy_modul["PEŁNANAZWASTRONY"](strona,tabela_nazw);
nazwa_spisu_tresci=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw);
przekierowanie_spisu_tresci=nazwa_spisu_tresci;
----
pelna_nazwa_spisu_tresci_szablonowa=szablonowe_modul["SzablonowaKompletnaNazwaStrony"](pelna_nazwa_spisu_tresci);
end;
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
--local tekst_rozwiniety_calego_artykulu=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_spisu_tresci,nil,true);
local __FUNKCJA_PARAMETRY=nil;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,false,nil,nil,function(tekst_artykulu,pelna_nazwa_spisu_tresci_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end,__FUNKCJA_PARAMETRY);
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
if(__FUNKCJA_ZBIERANIA_DANYCH)then
__FUNKCJA_ZBIERANIA_DANYCH(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
end;
----
local techniczne_modul=require("Module:Techniczne");
----
local tabelalisty2=nil;
local licencja_z_autorem=true;
local tabela_artykulow=nil;
local tabela_licencji_spisu_tresci=nil;
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy;
local inne_linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy;
local szablony_kompletowania_stron_woluminu=stronicowyparser_obiekty_modul.szablony_kompletowania_stron_woluminu;
local szablony_licencji=stronicowyparser_obiekty_modul.szablony_licencji;
local szablony_ozdobne_stron_woluminu=stronicowyparser_obiekty_modul.szablony_ozdobne_stron_woluminu;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały")
--[[local pelna_nazwa_spisu_tresci_wzor="^("..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or "")
..techniczne_modul["WzórNazwyStrony"](((nazwa_przestrzeni_ksiazki~="")and(nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki)
..((nazwa_spisu_tresci~="")and ("/"..nazwa_spisu_tresci) or "")
.."(/[Ss][Pp][Ii][Ss][%s_]+[Tt][Rr][Ee][ŚśSs][Cc][Ii]))$";]]
--local tablica_analizy_obiektow_strony_dany_modul={};
--local tablica_danych_parametrow_szablonu_strony={};
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,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,--[[function(pelna_nazwa_szablonu,tabela_modyfikatorow)
local pelna_nazwa_spisu_tresci,strona_ze_spisem_tresci=mw.ustring.match(pelna_nazwa_szablonu,pelna_nazwa_spisu_tresci_wzor);
if(pelna_nazwa_spisu_tresci and strona_ze_spisem_tresci)then
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,nil,true);
if(tekst)then
----
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.spis_tresci)then tablica_ksiazki.spis_tresci={};end;
if(not tablica_ksiazki.spis_tresci[nazwa_spisu_tresci])then tablica_ksiazki.spis_tresci[nazwa_spisu_tresci]={};end
local tablica_spis_tresci=tablica_ksiazki.spis_tresci[nazwa_spisu_tresci];
tablica_spis_tresci.tekst=tekst;
tablica_spis_tresci.adres_wzgledny_spisu_tresci=strona_ze_spisem_tresci;
----
return tekst;
end;
end;
end]]nil,function(str,pelna_nazwa_strony,tablica_analizy_dany_modul,czy_naglowek)
local FunkcjaIteratoraTekstuZakodowego=function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
----
local bez_kodow=not mw.ustring.match(szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu());
if(bez_kodow)then return;end;
----
local function PomijajLinkiOrazLicencje(szablon)
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local czy_szablony_licencji=stronicowyparser_obiekty_modul.szablony_licencji[nazwa_szablonu];
if(czy_szablony_licencji)then return true;end;
local czy_szablony_ozdobne=stronicowyparser_obiekty_modul.szablony_ozdobne_stron_woluminu[nazwa_szablonu];
if(czy_szablony_ozdobne)then return true;end;
--local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
--local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,nazwa_szablonu);
--if(wynik)then return wynik;end;
----
if((linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]))then return true;end;
local tab_wyzyskane_od_nazwy_szablonu=stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod);
if(tab_wyzyskane_od_nazwy_szablonu)then return true;end;
end);
end;
----
local CzySzablonLinkLubLicencja=function(szablon)
local ile_szablon_linki_lub_licencje=0;
local _,ile=mw.ustring.gsub(szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu("(SZABLON)"),
function(obiekt,kod)
kod=tonumber(kod);
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
local wynik=PomijajLinkiOrazLicencje(szablon);
if(wynik)then ile_szablon_linki_lub_licencje=ile_szablon_linki_lub_licencje+1;end;
return nil;
end);
if((ile>0)and(ile_szablon_linki_lub_licencje>0))then return true;end;
end;
local bez_kodow_linkow_wewnetrznych=(
not mw.ustring.match(szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu("LINK[WZ]"))
and not CzySzablonLinkLubLicencja(szablon)
)
or not mw.ustring.match(szablon,"\n([#:*;]+)[^%S\n]*([%w%p]*)[^%S\n]*([^\n]+)")
or not mw.ustring.match(szablon,"\n([#:*;]*)[^%S\n]*([%w%p]+)[^%S\n]*([^\n]+)");
if(bez_kodow_linkow_wewnetrznych)then return;end;
local wynik=PomijajLinkiOrazLicencje(szablon);
if(wynik)then return;end;
-----
return "";
--[[elseif(obiekt=="WIKITABELA")then
szablon=mw.ustring.match(szablon,"^{|(.-)|}$");
szablon=mw.ustring.gsub(szablon,"[|!][|!]","\n\n");
szablon=mw.ustring.gsub(szablon,"\n|[%-%+][^%S\n]+[^|\n]*","\n\n");
szablon=mw.ustring.gsub(szablon,"\n|%-","\n\n");
szablon=mw.ustring.gsub(szablon,"\n|%+","\n\n");
szablon=mw.ustring.gsub(szablon,"\n|","\n\n");
return szablon;]]
end;
return;
end;
if(not czy_naglowek)then
str=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(str,pelna_nazwa_strony,tablica_analizy_dany_modul,function(szablon,obiekt,kod)
local wynik=FunkcjaIteratoraTekstuZakodowego(szablon,obiekt,kod);
if(wynik)then return wynik;end;
return nil,true;
end);
return str;
end;
return str;
end,function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci,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,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end);
----
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local odczyt_jakie_nie_rozdzialy=stronicowyparser_obiekty_modul.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu;
local jakie_nie_rozdzialy=parametry_modul["KopiujTabelęElementów"](odczyt_jakie_nie_rozdzialy);
local odczyt_jakie_spisy_tresci=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu;
local jakie_spisy_tresci=parametry_modul["KopiujTabelęElementów"](odczyt_jakie_spisy_tresci);
setmetatable(jakie_nie_rozdzialy,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
setmetatable(jakie_spisy_tresci,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
local numer_rozdzialu_w_ksiazce=1;
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local szablonowe_modul=require("Module:Szablonowe");
local tab_dozwolonych_szablonow_z_elementami_spisu_artykulow=stronicowyparser_obiekty_modul.tab_dozwolonych_szablonow_z_elementami_spisu_artykulow;
local czy_jest_spis_tresci=nil;
local poziom_spisu_tresci=nil;
local dalej_nie_rozwazaj_spis_tresci=nil;
local wliczaj_artykuly_tego_rozdzialu=nil;
local specjalne_modul=require("Module:Specjalne");
local tablica_artykulow_zebranych={};
local stronicowyparser_zbieraniedanychstron_modul=require("Module:StronicowyParser/ZbieranieDanychStron");
----
--local szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu;
--local szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu;
----
local maksymalny_rozmiar_rozdzialu_zerowego=50;
local function AnalizaRozdzialu(rozdzial,linia_rozdzialu,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany)
--rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
--if(poziom_rozdzialu)then
-- text=stronicowyparser_rozdzialy_modul.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(text,nil,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
--end;
if(not tabela_artykulow)then tabela_artykulow={};end;
local spreparowany_uzyskany_tekst_rozdzialu=nil;
----
local tabela_rozdzial_artykulow;
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then
tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
----
tabela_rozdzial_artykulow=tabela_artykulow[numer_rozdzialu_w_ksiazce];
----
local rozdzial_na_tekst=p.AnalizaNapisuWprowadzeniaTekstu(rozdzial,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
----
tabela_rozdzial_artykulow[1]={rozdzial_na_tekst,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany,},rozdzial,};
spreparowany_uzyskany_tekst_rozdzialu=rozdzial_na_tekst;
end;
local czy_spis_rzeczy_napis_wprowadzenia_tekstu=(poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[spreparowany_uzyskany_tekst_rozdzialu]);
if(czy_spis_rzeczy_napis_wprowadzenia_tekstu)then
poziom_spisu_tresci=poziom_rozdzialu;
czy_jest_spis_tresci=true;
elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then
if((((poziom_spisu_tresci>0)and(poziom_rozdzialu>0))or((poziom_spisu_tresci<=0)and(poziom_rozdzialu<=0)))and(math.abs(poziom_spisu_tresci or 0)<math.abs(poziom_rozdzialu)))then
wliczaj_artykuly_tego_rozdzialu=true;
else
wliczaj_artykuly_tego_rozdzialu=nil;
dalej_nie_rozwazaj_spis_tresci=true;
end;
end;
local function iteratorTekstuNaglowka()
local re="([#:*;]*)[^%S\n]*([%d%.]*[^%S\n]*[^\n]+)";
local iter=nil;
local tak=nil;
local czy_rozdzial=nil;
return function()
if(not czy_rozdzial)then
if((poziom_rozdzialu or 0)>0)then
if(not iter)then
iter=mw.ustring.gmatch(rozdzial,"([^\n]+)");
end;
local wartosc=iter();
if(not wartosc)then
czy_rozdzial=true;
iter=nil;
else
return "","",wartosc,true;
end;
else
czy_rozdzial=true;
end;
end;
local function dane_iteratora()
if(not iter)then
iter=mw.ustring.gmatch(text,"\n"..re);
end;
local przedrostek_listy,tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci=iter();
if(przedrostek_listy and tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci)then
local wyzyskane_wywolanie_szablonu_spis_tresci,tekstowy_przedrostek=stronicowyparser_rozdzialy_modul.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci);
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
else
return nil;
end;
end;
if(not tak)then
tak=true;
local przedrostek_listy,tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci=mw.ustring.match(text,"^"..re);
if(przedrostek_listy and tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci)then
local wyzyskane_wywolanie_szablonu_spis_tresci,tekstowy_przedrostek=stronicowyparser_rozdzialy_modul.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci);
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
else
return dane_iteratora();
end;
end;
return dane_iteratora();
end;
end;
----
local function LiniaArtykulow(linia)
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
local szablon,obiekt,kod=iter();
if((not szablon) or (not kod) or(not obiekt))then return {};end;
local function SzablonAnalizujKompletnosc(szablon)
----
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
----
return stronicowyparser_obiekty_modul.szablony_kompletowania_stron_woluminu[nazwa_szablonu];
end);
return wynik;
end;
-----
local tak_pierwsze=((obiekt=="SZABLON") and SzablonAnalizujKompletnosc(szablon) or nil);
-----
for szablon,obiekt,kod in iter do
if(obiekt=="SZABLON")then
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
local tak_drugie=SzablonAnalizujKompletnosc(szablon);
if(tak_pierwsze)then
if(tak_drugie)then
linia=mw.ustring.gsub(linia,"(%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu()..")(%s*)("..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)..")","%1,%2%3");
end;
else
if(tak_drugie)then
linia=mw.ustring.gsub(linia,"(%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)..")(%s*)(%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu()..")","%1,%2%3");
end;
end;
end;
end;
local tabela_linii_artykulow=mw.text.split(linia,"%s*,%s*",false);
for i=1,#tabela_linii_artykulow,1 do
tabela_linii_artykulow[i]=mw.ustring.gsub(tabela_linii_artykulow[i],"&#"..mw.ustring.byte(',')..";",",");
end;
return tabela_linii_artykulow;
end;
local iterator=iteratorTekstuNaglowka();
local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial]));
for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do
local nie_pomijaj_tego_rozdzialu=false;
if((not przedrostek_listy)or(#przedrostek_listy==0))then
local rozdzial,czy_z_kropka=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if(((rozdzial)and(#rozdzial<=maksymalny_rozmiar_rozdzialu_zerowego))or(not rozdzial))then
nie_pomijaj_tego_rozdzialu=true;
end;
else
local czy_pominac_ten_rozdzial_jako_linie=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrostek_listy,linia,true,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
if(not czy_pominac_ten_rozdzial_jako_linie)then
nie_pomijaj_tego_rozdzialu=true;
else
nie_pomijaj_tego_rozdzialu=false;
end;
end;
if(nie_pomijaj_tego_rozdzialu)then
local ile=0;
local linia_rozwazana=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(linia,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,function(szablon,obiekt,kod--[[,czy_sam_siebie]])
if(obiekt=="SZABLON")then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
----
local czy_link=linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]
or inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]
or stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu ,tablica_danych_parametrow_szablonu_strony,kod);
local czy_szablon=czy_link or szablony_kompletowania_stron_woluminu[nazwa_szablonu]
or szablony_licencji[nazwa_szablonu]
--or szablony_ozdobne_stron_woluminu[nazwa_szablonu];
if(czy_link)then ile=ile+1;end;
return czy_szablon,obiekt,kod;
end);
elseif(obiekt=="LINKW")then
if(specjalne_modul["CzyLinkWewnętrzny"](szablon))then
ile=ile+1;
return true,obiekt,kod;
end;
elseif(obiekt=="LINKZ")then
ile=ile+1;
return true,obiekt,kod;
end;
end);
----
local czy_linia_uwzgledniana=mw.ustring.match(linia_rozwazana,"^%s*%-%-+(.*)%-%-+%s*$");
local czy_linia=((not czy_linia_uwzgledniana)and(mw.ustring.match(linia_rozwazana,"^%s*[%-%+%=%~]+.*$")
or ((#przedrostek_listy==0)and((mw.ustring.match(linia_rozwazana,"!"))and(mw.ustring.match(linia_rozwazana,"[^!]%s*$"))))
or mw.ustring.match(linia_rozwazana,"^%s*<")) or nil);
----
local nowa_linia=false;
local function WsadzanieParametryDoTablicy(linia,czy_linia_uwzgledniana)
return function(tabela_rozdzial_artykulow2,numer_podtablicy_w_tablicy,tab_stare)
--if((czy_spis_rzeczy_napis_wprowadzenia_tekstu)and(numer_podtablicy_w_tablicy>2))then return;end;
if((czy_rozdzial_centrowany)and(w_rozdziale)and(czy_linia_uwzgledniana)and(tab_stare[2])and(tab_stare[2][1]))then
tab_stare[2][1]=tab_stare[2][1]+1;
end;
if(not w_rozdziale)then
local function CzyZaliczac()
return ((not mw.ustring.match(linia,"^%w+%p+"))
and mw.ustring.match(linia,"^%s*'*%s*%w+"));
--or mw.ustring.match(linia,"^%s*'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu("LINKZ"));
end;
if(nowa_linia)then
tab_stare[2][4]=true;
table.insert(tabela_rozdzial_artykulow2[numer_podtablicy_w_tablicy],tab_stare);
elseif(((poziom_rozdzialu)or(#(przedrostek_listy or "")>0))and((ile>1)or(CzyZaliczac())))then
nowa_linia=true;
numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
tabela_rozdzial_artykulow=tabela_artykulow[numer_rozdzialu_w_ksiazce];
----
local rozdzial_na_tekst=p.AnalizaNapisuWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
----
tabela_rozdzial_artykulow[1]={rozdzial_na_tekst,{-#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,false,},linia,};
tab_stare[2][4]=true;
tab_stare[6]=(numer_podtablicy_w_tablicy>2) and 0 or nil;
tabela_rozdzial_artykulow[numer_podtablicy_w_tablicy]={};
table.insert(tabela_rozdzial_artykulow[numer_podtablicy_w_tablicy],tab_stare);
else
table.insert(tabela_rozdzial_artykulow2[numer_podtablicy_w_tablicy],tab_stare);
end;
else
table.insert(tabela_rozdzial_artykulow2[numer_podtablicy_w_tablicy],tab_stare);
end;
end;
end;
local function AnalizaLiniiObiekty(linia_rozwazana)
local tab_linia=LiniaArtykulow(linia_rozwazana);
for k=1,#tab_linia,1 do
local iterator2=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tab_linia[k],pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
local tab_nieobslugiwane=nil;
for szablon,obiekt,kod in iterator2 do
local czy_szablon=(obiekt=="SZABLON");local czy_link=((obiekt=="LINKW")or(obiekt=="LINKZ"));
if(czy_szablon or czy_link)then
local przerwij=nil;
if(czy_szablon)then
----
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu ,tabela_modyfikatorow)
----
--local przerwij=nil;
local tabela_spisu=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu];
if(tabela_spisu)then
if(tabela_spisu[1]==true)then
--local tabela_parametrow_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon,nil,nil,nil ,tablica_danych_parametrow_szablonu_strony,kod);
local numer_link=tabela_spisu["numer_link"];
for name,value in pairs(tabela_parametrow_szablonu)do
if(name~=numer_link)then
local kod_w_nie_obslugiwanych=tabela_parametrow_szablonu[name];
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(kod_w_nie_obslugiwanych,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
if(not tab_nieobslugiwane)then tab_nieobslugiwane={};end;
for szablon,obiekt,kod in iter do
if(not tab_nieobslugiwane[obiekt])then tab_nieobslugiwane[obiekt]={};end;
tab_nieobslugiwane[obiekt][kod]=true;
end;
end;
end;
local tyt=tabela_parametrow_szablonu[numer_link];
przedrostek_listy="";
tekstowy_przedrostek,szablon=mw.ustring.match(tyt,"^'*[^%S\n]*([%d%.]*)[^%S\n]*([^\n]-)'*$");
przerwij=true;
else
przedrostek_listy="";
tekstowy_przedrostek=tabela_parametrow_szablonu[tabela_spisu["numer"]];
szablon=tabela_parametrow_szablonu[tabela_spisu["link"]];
przerwij=true;
end;
end;
end);
end;
--[[if(przerwij)then
local iterator3=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
for szablon2,obiekt2,kod2 in iterator3 do
if(obiekt2=="SZABLON")then
local tabela_parametrow_szablonu,nazwa_szablonu,tablica_modyfikatorow=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon2,nil,nil,nil,tablica_danych_parametrow_szablonu_strony,kod2);
local tabela_linku=stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu];
if(tabela_linku)then
szablon=szablon2;
break;
end;
elseif(obiekt2=="LINKW")then
szablon=szablon2;
break;
end;
end;
end;]]
local pozycja_artykulu=nil;local nazwa=nil;
local tab_pozycja_elementow_w_spisie_rzeczy;local numer_rodzaju_artykulu_poprz;local id;local parametry_szablonu;local kom;
local link_szablon=nil;
local czy_obslugiwane=nil;
local CzyObslugiwane=function()
local wartosc=((tab_nieobslugiwane[obiekt])and(tab_nieobslugiwane[obiekt][kod]));
czy_obslugiwane=wartosc;
return (not wartosc);
end;
if((--[[wliczaj_artykuly_tego_rozdzialu]] true)and(not przerwij)and((not tab_nieobslugiwane)or(CzyObslugiwane())))then
local linia_artykokow=tab_linia[k];
numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych=WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,WsadzanieParametryDoTablicy(linia,czy_linia_uwzgledniana),tabela_rozdzial_artykulow,tablica_artykulow_zebranych,wliczaj_artykuly_tego_rozdzialu,szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,--[[]]przedrostek_listy,tekstowy_przedrostek,w_rozdziale,linia_artykokow--[[]]);
--mw.log()
if((not czy_obslugiwane)and(not numer_rodzaju_artykulu_poprz))then
link_szablon=licencja_z_autorem and (czy_artykul_korzystany and mw.ustring.match(szablon,"({{[^{}]+}})") or nil) or nil;
end;
--mw.logObject(tabela_rozdzial_artykulow)
else
link_szablon=licencja_z_autorem and (czy_artykul_korzystany and mw.ustring.match(szablon,"({{[^{}]+}})") or nil) or nil;
end;
--[[if(przerwij)then break;end;]]
if((not numer_rodzaju_artykulu_poprz)and(not przerwij)and(link_szablon)and((not tab_pozycja_elementow_w_spisie_rzeczy)or(not tab_pozycja_elementow_w_spisie_rzeczy[1]))and(czy_artykul_korzystany)and(licencja_z_autorem))then
---
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu_licencji,nazwa_szablonu_licencji,tabela_modyfikatorow_licencji)
if(stronicowyparser_obiekty_modul.szablony_licencji[nazwa_szablonu_licencji])then
if(tabela_parametrow_szablonu_licencji)then
local autor=tabela_parametrow_szablonu_licencji["Autor"];
local szkoly=tabela_parametrow_szablonu_licencji["Ukończone szkoły"];
local email=tabela_parametrow_szablonu_licencji["Email"];
local dotyczy=tabela_parametrow_szablonu_licencji["Dotyczy"];
local licencjonowanie=tabela_parametrow_szablonu_licencji["Licencjonowanie"];
local umowa_prawna=tabela_parametrow_szablonu_licencji["Umowa prawna"];
local konsekwencje=tabela_parametrow_szablonu_licencji["Konsekwencje"];
local frame=mw.getCurrentFrame();
if(autor~=nil)then
autor=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(autor,pelna_nazwa_spisu_tresci ,tablica_analizy_obiektow_strony_dany_modul);}
end;
if(szkoly~=nil)then
szkoly=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szkoly,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);}
end;
if(email~=nil)then
email=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(email,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);}
end;
if(dotyczy~=nil)then
dotyczy=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(dotyczy,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);}
end;
if(licencjonowanie~=nil)then
licencjonowanie=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(licencjonowanie,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);}
end;
if(umowa_prawna~=nil)then
umowa_prawna=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(umowa_prawna,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);}
end;
if(konsekwencje~=nil)then
konsekwencje=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(konsekwencje,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);}
end;
if(autor~=nil)then
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
licencja_z_autorem=false;
end;
return true;
elseif(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;
end);
if(wynik)then break;end;
end;
end;
end;
end;
end;
if(not czy_linia)then AnalizaLiniiObiekty(linia_rozwazana);end;
end;
end;
numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
end;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
---rozdzial_tab[1]=rozdzial;rozdzial_tab[2]=linia rozdziału
AnalizaRozdzialu(rozdzial_tab[1],rozdzial_tab[2],text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany);
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",nil,tekst_rozwiniety_calego_artykulu,nil,nil,nil,nil);
end;
--mw.logObject(tabela_artykulow);
if(czy_artykul_korzystany)then
return tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci;
else
return tabela_artykulow,nil,przekierowanie_spisu_tresci;
end;
end;
function p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku(tabela_artykulow)
local parametry_modul=require("Module:Parametry");
if(not parametry_modul.TypeTable(tabela_artykulow))then return;end;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local odczyt_jakie_spisy_tresci=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu;
local jakie_spisy_tresci=parametry_modul["KopiujTabelęElementów"](odczyt_jakie_spisy_tresci);
setmetatable(jakie_spisy_tresci,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
for _,tab_lista in ipairs(tabela_artykulow)do
if(tab_lista[2])then
for _,artykul_w_bazie_element in ipairs(tab_lista[2])do
local artykul_w_bazie=artykul_w_bazie_element[1];
local czy_table=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie);
artykul_w_bazie=czy_table and artykul_w_bazie[1] or artykul_w_bazie;
local artykul_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul_w_bazie);
if(jakie_spisy_tresci[artykul_bez_naglowka_w_bazie])then
return artykul_bez_naglowka_w_bazie;
end;
end;
end;
end;
end;
function p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,czy_artykul_korzystany,__FUNKCJA_SPISU_RZECZY,__FUNKCJA_ZBIERANIA_DANYCH)
local adres_ksiazki_glownego_spisu_tresci=nil;
local techniczne_modul=require("Module:Techniczne");
local nazwy_modul=require("Module:Nazwy");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
local ile2,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki,tekst=true,};
if(ile2>0)then
local strona_spisu_tresci=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_ksiazki);
if(strona_spisu_tresci)then
local html_modul=require("Module:Html");
strona_spisu_tresci=html_modul.DecodeHtml(strona_spisu_tresci,true);
local tabela_nazw={};
local nazwa_przestrzeni2=nazwy_modul["NAZWAPRZESTRZENI"](strona_spisu_tresci,tabela_nazw);
local nazwa_przestrzeni_ksiazki2=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona_spisu_tresci,tabela_nazw);
local nazwa_ksiazki2=(nazwa_przestrzeni_ksiazki2=="")
and nazwy_modul["NAZWAKSIĄŻKI"](strona_spisu_tresci,tabela_nazw)
or nazwy_modul["SUBNAZWAKSIĄŻKI"](strona_spisu_tresci,tabela_nazw);
----
if((nazwa_przestrzeni~=nazwa_przestrzeni2)or(nazwa_przestrzeni_ksiazki~=nazwa_przestrzeni_ksiazki2)or(nazwa_ksiazki~=nazwa_ksiazki2))then
if(((nazwa_przestrzeni2==nazwy_np_modul.Main)or(nazwa_przestrzeni2==nazwy_np_modul.Wikijunior))or(((nazwa_przestrzeni2==nazwy_np_modul.Wikibooks)or(nazwa_przestrzeni2==nazwy_np_modul.User))and(nazwa_przestrzeni_ksiazki2~="")))then
----
adres_ksiazki_glownego_spisu_tresci={nazwa_przestrzeni2,nazwa_przestrzeni_ksiazki2,nazwa_ksiazki2,};
local wynik=__FUNKCJA_SPISU_RZECZY and __FUNKCJA_SPISU_RZECZY(nazwa_przestrzeni2,nazwa_przestrzeni_ksiazki2,nazwa_ksiazki2) or nil;
if((wynik or 0)==1)then
return 1;
end;
----
nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki=nazwa_przestrzeni2,nazwa_przestrzeni_ksiazki2,nazwa_ksiazki2;
pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
else
return 2;
end;
end;
end;
end;
local parametry_modul=require("Module:Parametry");
local function Spis(tablista_artykulow,spis_tresci,tab_inne_spisy,nazwa_glownego_spisu,numer)
if((parametry_modul.TypeTable(tablista_artykulow)) and parametry_modul["CzySąElementyTablicy"](tablista_artykulow))then
local czy_spis_tresci_table=parametry_modul.TypeTable(spis_tresci);
local spis_tresci_strona=czy_spis_tresci_table and spis_tresci[1] or spis_tresci;
----
local przekierowanie_strona=czy_spis_tresci_table and spis_tresci[2] or nil;
local tab_element={[1]={((not spis_tresci) and "Główny spis treści" or ("Spis treści - "..spis_tresci_strona)),{((spis_tresci) and 1 or nil),nil,nil,},["spis"]={spis_tresci_strona or nazwa_glownego_spisu or "",numer}},[2]=nil,[3]=nil,};
---
if(not tablista_artykulow[1][1][2][1])then
for numer,tab_lista in ipairs(tablista_artykulow[1])do
if(numer>1)then
tab_element[numer]=tab_lista;
end;
end;
table.remove(tablista_artykulow,1);
end;
---
for _,tab_lista in ipairs(tablista_artykulow)do
local numer_rozdzialu=tab_lista[1][2][1];
local czy_rozdzial_centrowany=tab_lista[1][2][4];
if(numer_rozdzialu>0)then
tab_lista[1][2][1]=numer_rozdzialu+1;
end;
if(czy_rozdzial_centrowany)then break;end;
end;
---
numer=numer+1;
---
--if(not tablista_artykulow)then tablista_artykulow={};end;
----
table.insert(tablista_artykulow,1,tab_element);
if(spis_tresci)then
if(not tab_inne_spisy)then tab_inne_spisy={};end;
table.insert(tab_inne_spisy,spis_tresci);
if(not tablista_artykulow[1][2])then tablista_artykulow[1][2]={};end;
local tab_stare={czy_spis_tresci_table and {spis_tresci_strona,nil,przekierowanie_strona} or spis_tresci,{0,"","",true,},"[[:"..pelna_nazwa_ksiazki.."/" ..spis_tresci_strona.."]]",false,};
table.insert(tablista_artykulow[1][2],1,tab_stare);
end;
end;
return tablista_artykulow,tab_inne_spisy,numer;
end;
local function InneSpisy(tablista_artykulow,tab_inne_spisy,spis_tresci,numer)
--mw.logObject(tablista_artykulow,"TYTAn123fhh");
local tablista_artykulow_iter,tablica_licencji,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,spis_tresci,false,nil,__FUNKCJA_ZBIERANIA_DANYCH);
--mw.logObject(tablista_artykulow_iter,spis_tresci);
----
if((tablista_artykulow_iter)and(parametry_modul.TypeTable(tablista_artykulow_iter)))then
tablista_artykulow_iter,tab_inne_spisy,numer=Spis(tablista_artykulow_iter,(not przekierowanie_spisu_tresci)and spis_tresci or {przekierowanie_spisu_tresci,spis_tresci,},tab_inne_spisy,nil,numer);
for _,value in ipairs(tablista_artykulow_iter)do
if((not tablista_artykulow)or(not parametry_modul.TypeTable(tablista_artykulow)))then tablista_artykulow={};end;
table.insert(tablista_artykulow,value);
end;
end;
return tablista_artykulow,tab_inne_spisy,numer;
end;
local function SpisRzeczy(tabela_artykulow,tab_inne_spisy)
local artykul_spisu_rzeczy=p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku(tabela_artykulow)
if(artykul_spisu_rzeczy)then
local numer=1;
tabela_artykulow,tab_inne_spisy,numer=Spis(tabela_artykulow,nil,tab_inne_spisy,"",numer);
tabela_artykulow,tab_inne_spisy,numer=InneSpisy(tabela_artykulow,tab_inne_spisy,artykul_spisu_rzeczy,numer);
end;
return tabela_artykulow,tab_inne_spisy;
end;
local adres_ustawien=((nazwy_np_modul.Template~="")and (nazwy_np_modul.Template..":") or "").."NawigacjaSpecjalna/Nawigacja/"..pelna_nazwa_ksiazki;
----
adres_ustawien=techniczne_modul.PrzekierowanieDoStrony(adres_ustawien) or adres_ustawien;
----
local tekst=techniczne_modul.WikikodStrony{["przestrzeń"]="",["nazwa"]=adres_ustawien,};
if(not tekst)then
local tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"",czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
local tab_inne_spisy;
tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and "" or {przekierowanie_spisu_tresci,"",},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
end;
local tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji={};
local szablonowe_modul=require("Module:Szablonowe");
local tekst_zakodowany=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,adres_ustawien,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji,nil,nil);
local stronicowyparser_obiekty_modul=mw.loadData('Module:StronicowyParser/obiekty');
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_zakodowany,adres_ustawien,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji);
local szablon_uklad_autonawigacji;
local tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji={};
local tabela_parametrow_szablonu_uklad_autonawigacji;
local nazwa_szablonu_uklad_autonawigacji;
local tabela_modyfikatorow_uklad_autonawigacji;
local adres_ustawien_szablonowy=szablonowe_modul["SzablonowaKompletnaNazwaStrony"](adres_ustawien,nil,nil);
for szablon,obiekt,kod in iterator do
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji,kod,adres_ustawien_szablonowy,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
tabela_parametrow_szablonu_uklad_autonawigacji=tabela_parametrow_szablonu;
nazwa_szablonu_uklad_autonawigacji=nazwa_szablonu;
tabela_modyfikatorow_uklad_autonawigacji=tabela_modyfikatorow;
if(nazwa_szablonu==stronicowyparser_obiekty_modul.uklad_autonawigacji)then
szablon_uklad_autonawigacji=szablon;
return true;
end;
end);
if(wynik)then break;end;
end;
end;
if(not szablon_uklad_autonawigacji)then
local tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"",czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
local tab_inne_spisy;
tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and "" or {przekierowanie_spisu_tresci,"",},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
end;
--local tabela_parametrow_szablonu_uklad_autonawigacji,nazwa_szablonu_uklad_autonawigacji,modyfikatory_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon_uklad_autonawigacji);
if(not tabela_parametrow_szablonu_uklad_autonawigacji)then
local tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"",czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
local tab_inne_spisy;
tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and "" or {przekierowanie_spisu_tresci,"",},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
end;
local parametry_modul=require("Module:Parametry");
local automat_manualny=tabela_parametrow_szablonu_uklad_autonawigacji["automat manualny"];
----
local html_modul=require("Module:Html");
----
local czy_automat_manualny=(automat_manualny) and parametry_modul.CzyTak(automat_manualny) or nil;
if(czy_automat_manualny)then
local sub_nazwa_spis_tresci;
local spis_tresci=tabela_parametrow_szablonu_uklad_autonawigacji["spis treści"];
spis_tresci=spis_tresci and html_modul.DecodeHtml(spis_tresci,true) or nil;
if(parametry_modul.CzyTak(spis_tresci))then
local nazwy_modul=require("Module:Nazwy");
local tabela_nazw={};
local pelna_nazwa_ksiazki_spisu_tresci=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](spis_tresci,tabela_nazw);
if(pelna_nazwa_ksiazki_spisu_tresci==pelna_nazwa_ksiazki)then
sub_nazwa_spis_tresci=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](spis_tresci,tabela_nazw);
else
sub_nazwa_spis_tresci="";
end;
else
sub_nazwa_spis_tresci="";
end;
local tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,sub_nazwa_spis_tresci,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and sub_nazwa_spis_tresci or {przekierowanie_spisu_tresci,sub_nazwa_spis_tresci,},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
end;
local frame=mw.getCurrentFrame();
for name,value in pairs(tabela_parametrow_szablonu_uklad_autonawigacji)do
tabela_parametrow_szablonu_uklad_autonawigacji[name]=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(value,adres_ustawien,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji,function(szablon,obiekt,kod)
if(obiekt=="ZMIENNA")then
szablon,_=mw.ustring.gsub(szablon,"{{{([^|{}]*)|([^{}]-)}}}","{{(((}}%1{{!}}%2{{)))}}");
szablon,_=mw.ustring.gsub(szablon,"{{{([^|{}]*)}}}","{{(((}}%1{{)))}}");
return szablon;
end;
end),};
end;
local nazwy_modul=require("Module:Nazwy");
local bez_spisow_tresci=tabela_parametrow_szablonu_uklad_autonawigacji["bez spisów treści"];
local czy_bez_spisow_tresci=(bez_spisow_tresci) and parametry_modul.CzyTak(bez_spisow_tresci) or nil;
local bez_analizy_spisow_tresci=tabela_parametrow_szablonu_uklad_autonawigacji["bez analizy spisów treści"];
local czy_bez_analizy_spisow_tresci=(bez_analizy_spisow_tresci) and parametry_modul.CzyTak(bez_analizy_spisow_tresci) or nil;
----
local tab_inne_spisy;local nazwa_glownego_spisu;
local tablista_artykulow;
local licencja;
local numer=1;
----
--local pelna_nazwa_spisu_tresci=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
----
local tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika;local tabela_licencji_ksiazek_wedlug_strony_glownej_podrecznika;local przekierowanie_spisu_tresci;
if(not czy_bez_spisow_tresci)then
local spis_tresci_main=tabela_parametrow_szablonu_uklad_autonawigacji["spis treści"];
if(spis_tresci_main)then
spis_tresci_main=html_modul.DecodeHtml(spis_tresci_main,true);
---
spis_tresci_main=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=spis_tresci_main,[2]=pelna_nazwa_ksiazki,};
end;
local tabela_nazw={};
local pelna_nazwa_ksiazki_wedlug_glownego_spisu_tresci=parametry_modul.CzyTak(spis_tresci_main)
and nazwy_modul["PEŁNANAZWAKSIĄŻKI"](spis_tresci_main,tabela_nazw)
or pelna_nazwa_ksiazki;
if(pelna_nazwa_ksiazki~=pelna_nazwa_ksiazki_wedlug_glownego_spisu_tresci)then
return 0;
end;
nazwa_glownego_spisu=parametry_modul.CzyTak(spis_tresci_main)
and nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](spis_tresci_main,tabela_nazw)
or "";
else
nazwa_glownego_spisu="";
end;
if((not czy_bez_spisow_tresci)and(not czy_bez_analizy_spisow_tresci))then
tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika,tabela_licencji_ksiazek_wedlug_strony_glownej_podrecznika,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_glownego_spisu,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
if(przekierowanie_spisu_tresci)then
nazwa_glownego_spisu={przekierowanie_spisu_tresci,nazwa_glownego_spisu,};
end;
if((not tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika)or(tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika==0))then
return tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika;
end;
local IteratorSpisTresci=function()
local liczba=1;
return function()
local spis_tresci=tabela_parametrow_szablonu_uklad_autonawigacji["spis treści "..liczba];
liczba=liczba+1;
return spis_tresci;
end;
end;
local iter=IteratorSpisTresci();
tablista_artykulow=tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika;
licencja=tabela_licencji_ksiazek_wedlug_strony_glownej_podrecznika;
tablista_artykulow,tab_inne_spisy,numer=Spis(tablista_artykulow,nil,tab_inne_spisy,nazwa_glownego_spisu,numer);
local artykul_spisu_rzeczy=p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku(tablista_artykulow);
if(artykul_spisu_rzeczy)then
tabela_artykulow,tab_inne_spisy,numer=InneSpisy(tablista_artykulow,tab_inne_spisy,artykul_spisu_rzeczy,numer);
end;
for spis_tresci in iter do
---
if(not parametry_modul.CzyTak(spis_tresci))then return;end;
spis_tresci=html_modul.DecodeHtml(spis_tresci,true);
spis_tresci=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=spis_tresci,[2]="",};
---
tablista_artykulow,tab_inne_spisy,numer=InneSpisy(tablista_artykulow,tab_inne_spisy,spis_tresci,numer);
end;
end;
----
local IteratorFun=function()
local liczba=1;
local STRONA=function(liczba)return liczba*2-1;end;
local NAZWA=function(liczba)return liczba*2;end;
return function()
local strona=tabela_parametrow_szablonu_uklad_autonawigacji[STRONA(liczba)];
local nazwa=tabela_parametrow_szablonu_uklad_autonawigacji[NAZWA(liczba)];
liczba=liczba+1;
return strona,nazwa;
end;
end;
local tablica_stron_ksiazki={};
local tablica_stron_inne={};
local iter=IteratorFun();
local ksiazkawe_modul=require("Module:Książkowe");
local pudelko_modul=require("Module:Pudełko");
local wiki_modul=require("Module:Wiki");
local dodatkowe_artykuly=nil;
local tablica_artykulow_zebranych={};
local tab_nazwa_spisow_przekierowaniowych={};
local dodatkowe_artykuly=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
local tabela_rozdzial_artykulow=nil;
----
local pelna_nazwa_spisu_tresci=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
local pelna_nazwa_spisu_tresci_szablonowa=szablonowe_modul["SzablonowaKompletnaNazwaStrony"](pelna_nazwa_spisu_tresci);
----
--local tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji={};
----
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local DekodowanieTekstu=stronicowyparser_potrzebne_modul.DekodowanieTekstu(adres_ustawien,adres_ustawien_szablonowy,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji,tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
for strona,nazwa in iter do
local function ZbieranieDanychStronZAutonawigacji()
if(not parametry_modul.CzyTak(strona))then return;end;
strona=html_modul.DecodeHtml(strona,true);
nazwa=parametry_modul.CzyTak(nazwa) and html_modul.DecodeHtml(nazwa,true) or nil;
if(not dodatkowe_artykuly)then
if((not tablista_artykulow)or(not parametry_modul.TypeTable(tablista_artykulow)))then tablista_artykulow={};end;
table.insert(tablista_artykulow,{[1]={"Dodatkowe artykuły",{1,nil,nil},["dodatkowe"]="tak",},[2]=nil,});
tabela_rozdzial_artykulow=tablista_artykulow[#tablista_artykulow];
end;
---
strona=DekodowanieTekstu(strona,2,nil);
strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=pelna_nazwa_ksiazki,};
local WsadzanieParametryDoTablicy=function(tabela_rozdzial_artykulow,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare)
if(not dodatkowe_artykuly)then dodatkowe_artykuly={};end;
----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab_stare[1]);
local adres=czy_table_baza_artykulu and tab_stare[1][1] or tab_stare[1];
local czy_w_podreczniku=tab_stare[5];
local kod_jezyka_koncowy=czy_table_baza_artykulu and tab_stare[1][5] or nil;
local kod_projektu_koncowy=czy_table_baza_artykulu and tab_stare[1][6] or nil;
----
table.insert(dodatkowe_artykuly,{((adres) and (kod_jezyka_koncowy or kod_projektu_koncowy) and({adres,kod_jezyka_koncowy,kod_projektu_koncowy,}) or adres),nazwa,czy_w_podreczniku,});
----
table.insert(tabela_rozdzial_artykulow[numer_rodzaju_artykulow_w_nie_podreczniku],tab_stare);
end;
local numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy;
numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych=WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,WsadzanieParametryDoTablicy,tabela_rozdzial_artykulow,tablica_artykulow_zebranych,true,{strona,nazwa,},nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"",adres_ustawien,adres_ustawien_szablonowy,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji,tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji,nil,nil,tab_nazwa_spisow_przekierowaniowych,--[[]]"*","",false,"[[:"..strona..((parametry_modul.CzyTak(nazwa))and("|"..nazwa) or "").."]]");
end;
ZbieranieDanychStronZAutonawigacji();
end;
----
return tablista_artykulow,licencja,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,adres_ksiazki_glownego_spisu_tresci;
end;
return p;
5k2sgvj62dt6kidhygd0mfpx621payq
557812
557810
2026-09-28T13:21:00Z
Persino
2851
557812
Scribunto
text/plain
local p={};
local function Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2)
local parametry_modul=require("Module:Parametry");
local ile=0;
for i,tabela_rozdzial_artykulow2_i in pairs(tabela_rozdzial_artykulow2)do
i=parametry_modul.TypeNumber(i) and i or nil;
if((i)and(i>1))then
ile=ile+#(tabela_rozdzial_artykulow2_i or {});
end;
end;
return ile;
end;
local function WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY,tabela_rozdzial_artykulow2,tablica_artykulow_zebranych,wliczaj_artykuly_tego_rozdzialu,szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,--[[]]przedrostek_listy,tekstowy_przedrostek,w_rozdziale,linia_artykokow--[[]])
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local tab_pozycja_elementow_w_spisie_rzeczy,numer_rodzaju_artykulu,id,parametry_szablonu,kom,czy_nazwy_rozwiniete=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,nil);
---
local numer_rodzaju_artykulu_poprz=numer_rodzaju_artykulu;
if(numer_rodzaju_artykulu)then
--mw.log(szablon,numer_rodzaju_artykulu,wliczaj_artykuly_tego_rozdzialu)
numer_rodzaju_artykulu=(wliczaj_artykuly_tego_rozdzialu)and numer_rodzaju_artykulu or (numer_rodzaju_artykulu+6);
end;
---
--Rozdzialy początek
local znaki_niedozwolone;
local function ParametrPierwszy(tab_artykul,czy_niedozwolone)
local artykul=tab_artykul[1];
local parametry=tab_artykul[2];
local naglowek=tab_artykul[3];
local tablica_przekierowania=tab_artykul[4];
----
local znaki_niedozwolone;
if(czy_niedozwolone)then
znaki_niedozwolone=mw.ustring.match(artykul,"[|<>{}%[%]]");
end;
----
--if(artykul)then
--artykul=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(artykul,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
--artykul=parametry_modul["Odstępy"]{[1]=artykul,[2]="tak",}
--artykul=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](artykul);
--end;
----
--if(parametry)then
-- parametry=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(parametry,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul)
-- parametry=parametry_modul["Odstępy"]{[1]=parametry,[2]="tak",}
-- parametry=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](parametry);
--end;
----
--if(naglowek)then
-- naglowek=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(naglowek,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
-- naglowek=parametry_modul["Odstępy"]{[1]=naglowek,[2]="tak",}
-- naglowek=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](naglowek);
--end;
----
tab_artykul=((artykul)and(parametry or naglowek))and{[1]=artykul,[2]=parametry,[3]=naglowek,["LINK"]=true,} or artykul;
return tab_artykul,znaki_niedozwolone,tablica_przekierowania;
end;
local parametry_modul=require("Module:Parametry");
----
if((numer_rodzaju_artykulu_poprz)and(numer_rodzaju_artykulu_poprz==1)and(tab_pozycja_elementow_w_spisie_rzeczy)and(tab_pozycja_elementow_w_spisie_rzeczy[1]))then
local numer_rodzaju_artykulu_w_podreczniku=numer_rodzaju_artykulu+1;
local czy_tablica=nil;local tablica_przekierowania=nil;
if(tab_pozycja_elementow_w_spisie_rzeczy[1])then
czy_tablica=parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1]);
if(not czy_tablica)then
--tab_pozycja_elementow_w_spisie_rzeczy[1]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[1],pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
--tab_pozycja_elementow_w_spisie_rzeczy[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[1],[2]="tak",}
--tab_pozycja_elementow_w_spisie_rzeczy[1]=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tab_pozycja_elementow_w_spisie_rzeczy[1]);
znaki_niedozwolone=mw.ustring.match(tab_pozycja_elementow_w_spisie_rzeczy[1],"[|<>{}%[%]]");
tablica_artykulow_zebranych={tab_pozycja_elementow_w_spisie_rzeczy[1],0,false,};
else
tab_pozycja_elementow_w_spisie_rzeczy[1],znaki_niedozwolone,tablica_przekierowania=ParametrPierwszy(tab_pozycja_elementow_w_spisie_rzeczy[1],true);
local czy_inna_ksiazka=tablica_przekierowania and tablica_przekierowania[1] and tablica_przekierowania[1][5] or nil;
if(not czy_inna_ksiazka)then
czy_tablica=parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1]);
else
local artykul=tablica_przekierowania[2];
local parametry=tablica_przekierowania[3];
local naglowek=tablica_przekierowania[4];
czy_tablica=(artykul)and(parametry or naglowek);
end;
if(not czy_tablica)then
local aktualny_artykul_ksiazki;
if(not czy_inna_ksiazka)then
aktualny_artykul_ksiazki=tab_pozycja_elementow_w_spisie_rzeczy[1];
else
aktualny_artykul_ksiazki=tablica_przekierowania[2]
or (parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1])and tab_pozycja_elementow_w_spisie_rzeczy[1][1] or tab_pozycja_elementow_w_spisie_rzeczy[1]);
end;
tablica_artykulow_zebranych={aktualny_artykul_ksiazki,0,false,};
else
local aktualny_artykul_ksiazki;
if(not czy_inna_ksiazka)then
aktualny_artykul_ksiazki=tab_pozycja_elementow_w_spisie_rzeczy[1][1];
else
aktualny_artykul_ksiazki=tablica_przekierowania[2]
or (parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1])and tab_pozycja_elementow_w_spisie_rzeczy[1][1] or tab_pozycja_elementow_w_spisie_rzeczy[1]);
end;
if(tablica_artykulow_zebranych[1]~=aktualny_artykul_ksiazki)then
tablica_artykulow_zebranych={aktualny_artykul_ksiazki,0,false,};
else
tablica_artykulow_zebranych[3]=true;
end;
end;
end;
end;
----
local szablonowe_modul=require("Module:Szablonowe");
----
if((not czy_nazwy_rozwiniete)and(tab_pozycja_elementow_w_spisie_rzeczy[2]))then
local stronicowyparser_pomocne_modul=require("Module:StronicowyParser/Pomocne");
tab_pozycja_elementow_w_spisie_rzeczy[2]=stronicowyparser_pomocne_modul.DekodowanieTekstuNazwLinku(tab_pozycja_elementow_w_spisie_rzeczy[2],pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci);
end;
----
if(znaki_niedozwolone)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"niedozwolone znaki w spisach treści"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"niedozwolone znaki w spisach treści");
end;
end;
local nazwa_jednostki=stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(tab_pozycja_elementow_w_spisie_rzeczy[1],false);
local stara_nazwa_jednostki=nazwa_jednostki;
if(not tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku])then tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku]={};end;
--local linia_artykokow=--[[(not przerwij) and ]]tab_linia[k]--[[ or szablon]];
linia_artykokow=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(linia_artykokow,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
--local przekierowanie=pelna_nazwa_ksiazki..((nazwa_jednostki~="") and ("/"..nazwa_jednostki) or "");
--local strona=techniczne_modul.PrzekierowanieDoStrony(przekierowanie);
--local strona=(tablica_przekierowania)
local przekierowanie;
if(--[[strona--]]tablica_przekierowania)then
--nazwa_jednostki=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
--przekierowanie=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](przekierowanie)
przekierowanie=tablica_przekierowania[2];
if((czy_tablica)and(stara_nazwa_jednostki~=""))then
przekierowanie=przekierowanie and ((tablica_przekierowania[3] or tablica_przekierowania[4])
and {przekierowanie, tablica_przekierowania[3], tablica_przekierowania[4],["LINK"]=true,}
or przekierowanie
)
or nil;
nazwa_jednostki={nazwa_jednostki, tab_pozycja_elementow_w_spisie_rzeczy[1][2], tab_pozycja_elementow_w_spisie_rzeczy[1][3],["LINK"]=true,};
local czy_w_tab=tablica_artykulow_zebranych[2];
local czy_wsadzac=tablica_artykulow_zebranych[3];
if((not czy_wsadzac)and(czy_w_tab==0)and(tablica_artykulow_zebranych[1]==stara_nazwa_jednostki))then
local tab_stare={{stara_nazwa_jednostki,tab_pozycja_elementow_w_spisie_rzeczy[2],tablica_przekierowania and (tablica_przekierowania[2] and przekierowanie or nil) or nil,((tablica_przekierowania)and(tablica_przekierowania[1])) and tablica_przekierowania[1] or nil,nil,nil,tab_pozycja_elementow_w_spisie_rzeczy[5],true,tab_pozycja_elementow_w_spisie_rzeczy[6],},{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,true,};
--table.insert(tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku],tab_stare);
--WsadzanieParametryDoTablicy(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
tablica_artykulow_zebranych[2]=1;
end;
end;
else
nazwa_jednostki=tab_pozycja_elementow_w_spisie_rzeczy[1];
if((czy_tablica)and(stara_nazwa_jednostki~=""))then
local czy_w_tab=tablica_artykulow_zebranych[2];
local czy_wsadzac=tablica_artykulow_zebranych[3];
if((not czy_wsadzac)and(czy_w_tab==0)and(tablica_artykulow_zebranych[1]==stara_nazwa_jednostki))then
local tab_stare={{stara_nazwa_jednostki,tab_pozycja_elementow_w_spisie_rzeczy[2],nil,nil,nil,nil,tab_pozycja_elementow_w_spisie_rzeczy[5],true,tab_pozycja_elementow_w_spisie_rzeczy[6],},{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,true,};
--table.insert(tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku],tab_stare);
--WsadzanieParametryDoTablicy(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
tablica_artykulow_zebranych[2]=1;
end;
end;
end;
local ile_dodac_do_poziomu_artykulu=tablica_artykulow_zebranych[2];
local ile_dodac_do_poziomu_artykulu_lub_nil=((ile_dodac_do_poziomu_artykulu)and(ile_dodac_do_poziomu_artykulu>0))and ile_dodac_do_poziomu_artykulu or nil;
local tab_stare={((tab_pozycja_elementow_w_spisie_rzeczy[2] or tablica_przekierowania or tab_pozycja_elementow_w_spisie_rzeczy[5] or tab_pozycja_elementow_w_spisie_rzeczy[6] or ile_dodac_do_poziomu_artykulu_lub_nil) and ({nazwa_jednostki,tab_pozycja_elementow_w_spisie_rzeczy[2],tablica_przekierowania and (tablica_przekierowania[2] and przekierowanie or nil) or nil,((tablica_przekierowania)and(tablica_przekierowania[1])) and tablica_przekierowania[1] or nil,nil,nil,tab_pozycja_elementow_w_spisie_rzeczy[5],ile_dodac_do_poziomu_artykulu_lub_nil,tab_pozycja_elementow_w_spisie_rzeczy[6],}) or nazwa_jednostki),{#przedrostek_listy--[[+(ile_dodac_do_poziomu_artykulu and ile_dodac_do_poziomu_artykulu or 0)]],przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,true,(numer_rodzaju_artykulu>1) and (Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2)) or nil,};
--table.insert(tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku],tab_stare);
--WsadzanieParametryDoTablicy(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
--mw.logObject(tab_stare,"TYTAN1")
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
--mw.logObject(tabela_rozdzial_artykulow2,"TYTAN2")
elseif((numer_rodzaju_artykulu_poprz)and(numer_rodzaju_artykulu_poprz>=2)and(tab_pozycja_elementow_w_spisie_rzeczy)and(tab_pozycja_elementow_w_spisie_rzeczy[1]))then
if(tab_pozycja_elementow_w_spisie_rzeczy[1])then
if(not parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1]))then
--tab_pozycja_elementow_w_spisie_rzeczy[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[1],[2]="tak",};
--tab_pozycja_elementow_w_spisie_rzeczy[1]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[1],pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
else
tab_pozycja_elementow_w_spisie_rzeczy[1]=ParametrPierwszy(tab_pozycja_elementow_w_spisie_rzeczy[1],false);
end;
end;
local szablonowe_modul=require("Module:Szablonowe");
if((not czy_nazwy_rozwiniete)and(tab_pozycja_elementow_w_spisie_rzeczy[2]))then
local stronicowyparser_pomocne_modul=require("Module:StronicowyParser/Pomocne");
tab_pozycja_elementow_w_spisie_rzeczy[2]=stronicowyparser_pomocne_modul.DekodowanieTekstuNazwLinku(tab_pozycja_elementow_w_spisie_rzeczy[2],pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci);
end;
if(tab_pozycja_elementow_w_spisie_rzeczy[3])then
tab_pozycja_elementow_w_spisie_rzeczy[3]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[3],pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
tab_pozycja_elementow_w_spisie_rzeczy[3]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[3],[2]="tak",[4]="tak",};
end;
if(tab_pozycja_elementow_w_spisie_rzeczy[4])then
tab_pozycja_elementow_w_spisie_rzeczy[4]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[4],pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
tab_pozycja_elementow_w_spisie_rzeczy[4]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[4],[2]="tak",[4]="tak",};
end;
local wiki_modul=require("Module:Wiki");
-----
local numer_rodzaju_artykulow_w_nie_podreczniku=numer_rodzaju_artykulu+1;
-----
if(not tabela_rozdzial_artykulow2[numer_rodzaju_artykulow_w_nie_podreczniku])then
tabela_rozdzial_artykulow2[numer_rodzaju_artykulow_w_nie_podreczniku]={};
end;
--local linia_artykokow=--[[(not przerwij) and ]]tab_linia[k]--[[ or szablon]];
linia_artykokow=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(linia_artykokow,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
local tab_stare={((tab_pozycja_elementow_w_spisie_rzeczy[1])and((tab_pozycja_elementow_w_spisie_rzeczy[2])or(tab_pozycja_elementow_w_spisie_rzeczy[3])or(tab_pozycja_elementow_w_spisie_rzeczy[4])or(tab_pozycja_elementow_w_spisie_rzeczy[5])or(tab_pozycja_elementow_w_spisie_rzeczy[6])))and({tab_pozycja_elementow_w_spisie_rzeczy[1],tab_pozycja_elementow_w_spisie_rzeczy[2],nil,nil,tab_pozycja_elementow_w_spisie_rzeczy[3],tab_pozycja_elementow_w_spisie_rzeczy[4],tab_pozycja_elementow_w_spisie_rzeczy[5],nil,tab_pozycja_elementow_w_spisie_rzeczy[6],}) or tab_pozycja_elementow_w_spisie_rzeczy[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,false,Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2),};
--table.insert(tabela_rozdzial_artykulow2[numer_rodzaju_artykulow_w_nie_podreczniku],tab_stare);
--WsadzanieParametryDoTablicy(tabela_rozdzial_artykulow2,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare);
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare);
end;
--mw.logObject(tabela_rozdzial_artykulow2,"TYTAN")
return numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych;
end;
function p.AnalizaNapisuWprowadzeniaTekstu(rozdzial,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local specjalne_modul=require("Module:Specjalne");
local szablonowe_modul=require("Module:Szablonowe");
local html_modul=require("Module:Html");
local parametry_modul=require("Module:Parametry");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local rozdzial_na_tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(rozdzial,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
-----
local szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu;
local szablony_dozwolone_w_nazwach_linkowych=stronicowyparser_obiekty_modul.szablony_dozwolone_w_nazwach_linkowych;
local szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu;
-----
local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
if(wynik)then return wynik;end;
local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_w_nazwach_linkowych,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
if(wynik)then return wynik;end;
----
local dodatek=stronicowyparser_rozdzialy_modul.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
if(dodatek)then return dodatek;end;
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
----
local tab_szablon_link_intelignetny=stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod);
if(tab_szablon_link_intelignetny)then
return (not tab_szablon_link_intelignetny[4]) and tabela_parametrow_szablonu[2] or tabela_parametrow_szablonu[1];
else
local nazwa_zamiast_linku=stronicowyparser_potrzebne_modul.NazwaInnegoSzablonowegoLinkowegoObiektu(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa_zamiast_linku)then return nazwa_zamiast_linku;end;
end;
local nazwa_zamiast_linku=stronicowyparser_potrzebne_modul.NazwaInnegoSzablonowegoLinkowegoSpisuRzeczy(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa_zamiast_linku)then return nazwa_zamiast_linku;end;
----
if(szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu[nazwa_szablonu])then
local szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
return szablon;
end;
end);
if(wynik)then return wynik;end;
----
local rozdzial_na_tekst=mw.ustring.gsub(szablon,"^{{[^{}|]*|([^{}|]*).*}}$","%1");
return rozdzial_na_tekst;
elseif(obiekt=="NOWIKI")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
local rozdzial_na_tekst=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
return rozdzial_na_tekst;
else
return "";
end;
elseif(obiekt=="PRE")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
local rozdzial_na_tekst=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
return rozdzial_na_tekst;
else
return "";
end;
elseif(obiekt=="ŹRÓDŁO")then
local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(zawartosc)then
local rozdzial_na_tekst=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
return rozdzial_na_tekst;
else
return "";
end;
elseif((obiekt~="MATH")and(obiekt~="GALERIA")and(obiekt~="MAPAOBRAZU")and(obiekt~="INNEPRE"))then
local rozdzial_na_tekst=specjalne_modul["UsuńKomentarze"](szablon);
rozdzial_na_tekst=specjalne_modul["ZamieńLinkiZewnętrzneNaTekst"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["ZamieńLinkiWewnętrzneNaTekst"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńSzablonyStylów"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńZnaczniki"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńKategorie"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńWywołaniaPlików"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńInterwiki"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńZnakiSpecjalne"](rozdzial_na_tekst);
return rozdzial_na_tekst;
else
return "";
end;
end);
----
rozdzial_na_tekst=specjalne_modul["UsuńZnakiSpecjalne"](rozdzial_na_tekst);
rozdzial_na_tekst=specjalne_modul["UsuńZbędneBiałeZnaki"](rozdzial_na_tekst);
return rozdzial_na_tekst;
end;
function p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH)
local parametry_modul=require("Module:Parametry");
if((not nazwa_przestrzeni)or(not nazwa_przestrzeni_ksiazki)or(not nazwa_ksiazki))then return 0;end;
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
local pelna_nazwa_spisu_tresci=pelna_nazwa_ksiazki..((nazwa_spisu_tresci~="")and("/"..nazwa_spisu_tresci) or "");
---
local szablonowe_modul=require("Module:Szablonowe");
local pelna_nazwa_spisu_tresci_szablonowa=szablonowe_modul["SzablonowaKompletnaNazwaStrony"](pelna_nazwa_spisu_tresci);
---
local techniczne_modul=require("Module:Techniczne");
local strona=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_spisu_tresci);
local przekierowanie_spisu_tresci=nil;
local tab_nazwa_spisow_przekierowaniowych={};
--[[if(adres_ksiazki_glownego_spisu_tresci)then
if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni]={};end;
if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki]={};end;
if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki]=true;end;
end;]]
--if(adres_ksiazki_glownego_spisu_tresci)then
-- 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(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni]={};end;
-- if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki]={};end;
-- if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki]=true;end;
-- end;
if(strona)then
local html_modul=require("Module:Html");
strona=html_modul.DecodeHtml(strona,true);
local tabela_nazw={};
local pelna_nazwa_ksiazki_przekierowania=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](strona,tabela_nazw);
if(pelna_nazwa_ksiazki_przekierowania~=pelna_nazwa_ksiazki)then return 0;end;
pelna_nazwa_spisu_tresci=nazwy_modul["PEŁNANAZWASTRONY"](strona,tabela_nazw);
nazwa_spisu_tresci=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw);
przekierowanie_spisu_tresci=nazwa_spisu_tresci;
----
pelna_nazwa_spisu_tresci_szablonowa=szablonowe_modul["SzablonowaKompletnaNazwaStrony"](pelna_nazwa_spisu_tresci);
end;
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
--local tekst_rozwiniety_calego_artykulu=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_spisu_tresci,nil,true);
local __FUNKCJA_PARAMETRY=nil;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,false,nil,nil,function(tekst_artykulu,pelna_nazwa_spisu_tresci_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end,__FUNKCJA_PARAMETRY);
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
if(__FUNKCJA_ZBIERANIA_DANYCH)then
__FUNKCJA_ZBIERANIA_DANYCH(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
end;
----
local techniczne_modul=require("Module:Techniczne");
----
local tabelalisty2=nil;
local licencja_z_autorem=true;
local tabela_artykulow=nil;
local tabela_licencji_spisu_tresci=nil;
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy;
local inne_linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy;
local szablony_kompletowania_stron_woluminu=stronicowyparser_obiekty_modul.szablony_kompletowania_stron_woluminu;
local szablony_licencji=stronicowyparser_obiekty_modul.szablony_licencji;
local szablony_ozdobne_stron_woluminu=stronicowyparser_obiekty_modul.szablony_ozdobne_stron_woluminu;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały")
--[[local pelna_nazwa_spisu_tresci_wzor="^("..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or "")
..techniczne_modul["WzórNazwyStrony"](((nazwa_przestrzeni_ksiazki~="")and(nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki)
..((nazwa_spisu_tresci~="")and ("/"..nazwa_spisu_tresci) or "")
.."(/[Ss][Pp][Ii][Ss][%s_]+[Tt][Rr][Ee][ŚśSs][Cc][Ii]))$";]]
--local tablica_analizy_obiektow_strony_dany_modul={};
--local tablica_danych_parametrow_szablonu_strony={};
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,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,--[[function(pelna_nazwa_szablonu,tabela_modyfikatorow)
local pelna_nazwa_spisu_tresci,strona_ze_spisem_tresci=mw.ustring.match(pelna_nazwa_szablonu,pelna_nazwa_spisu_tresci_wzor);
if(pelna_nazwa_spisu_tresci and strona_ze_spisem_tresci)then
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,nil,true);
if(tekst)then
----
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.spis_tresci)then tablica_ksiazki.spis_tresci={};end;
if(not tablica_ksiazki.spis_tresci[nazwa_spisu_tresci])then tablica_ksiazki.spis_tresci[nazwa_spisu_tresci]={};end
local tablica_spis_tresci=tablica_ksiazki.spis_tresci[nazwa_spisu_tresci];
tablica_spis_tresci.tekst=tekst;
tablica_spis_tresci.adres_wzgledny_spisu_tresci=strona_ze_spisem_tresci;
----
return tekst;
end;
end;
end]]nil,function(str,pelna_nazwa_strony,tablica_analizy_dany_modul,czy_naglowek)
local FunkcjaIteratoraTekstuZakodowego=function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
----
local bez_kodow=not mw.ustring.match(szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu());
if(bez_kodow)then return;end;
----
local function PomijajLinkiOrazLicencje(szablon)
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local czy_szablony_licencji=stronicowyparser_obiekty_modul.szablony_licencji[nazwa_szablonu];
if(czy_szablony_licencji)then return true;end;
local czy_szablony_ozdobne=stronicowyparser_obiekty_modul.szablony_ozdobne_stron_woluminu[nazwa_szablonu];
if(czy_szablony_ozdobne)then return true;end;
--local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
--local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,nazwa_szablonu);
--if(wynik)then return wynik;end;
----
if((linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]))then return true;end;
local tab_wyzyskane_od_nazwy_szablonu=stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod);
if(tab_wyzyskane_od_nazwy_szablonu)then return true;end;
end);
end;
----
local CzySzablonLinkLubLicencja=function(szablon)
local ile_szablon_linki_lub_licencje=0;
local _,ile=mw.ustring.gsub(szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu("(SZABLON)"),
function(obiekt,kod)
kod=tonumber(kod);
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
local wynik=PomijajLinkiOrazLicencje(szablon);
if(wynik)then ile_szablon_linki_lub_licencje=ile_szablon_linki_lub_licencje+1;end;
return nil;
end);
if((ile>0)and(ile_szablon_linki_lub_licencje>0))then return true;end;
end;
local bez_kodow_linkow_wewnetrznych=(
not mw.ustring.match(szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu("LINK[WZ]"))
and not CzySzablonLinkLubLicencja(szablon)
)
or not mw.ustring.match(szablon,"\n([#:*;]+)[^%S\n]*([%w%p]*)[^%S\n]*([^\n]+)")
or not mw.ustring.match(szablon,"\n([#:*;]*)[^%S\n]*([%w%p]+)[^%S\n]*([^\n]+)");
if(bez_kodow_linkow_wewnetrznych)then return;end;
local wynik=PomijajLinkiOrazLicencje(szablon);
if(wynik)then return;end;
-----
return "";
--[[elseif(obiekt=="WIKITABELA")then
szablon=mw.ustring.match(szablon,"^{|(.-)|}$");
szablon=mw.ustring.gsub(szablon,"[|!][|!]","\n\n");
szablon=mw.ustring.gsub(szablon,"\n|[%-%+][^%S\n]+[^|\n]*","\n\n");
szablon=mw.ustring.gsub(szablon,"\n|%-","\n\n");
szablon=mw.ustring.gsub(szablon,"\n|%+","\n\n");
szablon=mw.ustring.gsub(szablon,"\n|","\n\n");
return szablon;]]
end;
return;
end;
if(not czy_naglowek)then
str=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(str,pelna_nazwa_strony,tablica_analizy_dany_modul,function(szablon,obiekt,kod)
local wynik=FunkcjaIteratoraTekstuZakodowego(szablon,obiekt,kod);
if(wynik)then return wynik;end;
return nil,true;
end);
return str;
end;
return str;
end,function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci,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,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end);
----
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local odczyt_jakie_nie_rozdzialy=stronicowyparser_obiekty_modul.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu;
local jakie_nie_rozdzialy=parametry_modul["KopiujTabelęElementów"](odczyt_jakie_nie_rozdzialy);
local odczyt_jakie_spisy_tresci=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu;
local jakie_spisy_tresci=parametry_modul["KopiujTabelęElementów"](odczyt_jakie_spisy_tresci);
setmetatable(jakie_nie_rozdzialy,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
setmetatable(jakie_spisy_tresci,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
local numer_rozdzialu_w_ksiazce=1;
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local szablonowe_modul=require("Module:Szablonowe");
local tab_dozwolonych_szablonow_z_elementami_spisu_artykulow=stronicowyparser_obiekty_modul.tab_dozwolonych_szablonow_z_elementami_spisu_artykulow;
local czy_jest_spis_tresci=nil;
local poziom_spisu_tresci=nil;
local dalej_nie_rozwazaj_spis_tresci=nil;
local wliczaj_artykuly_tego_rozdzialu=nil;
local specjalne_modul=require("Module:Specjalne");
local tablica_artykulow_zebranych={};
local stronicowyparser_zbieraniedanychstron_modul=require("Module:StronicowyParser/ZbieranieDanychStron");
----
--local szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu;
--local szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu;
----
local maksymalny_rozmiar_rozdzialu_zerowego=50;
local function AnalizaRozdzialu(rozdzial,linia_rozdzialu,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany)
--rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
--if(poziom_rozdzialu)then
-- text=stronicowyparser_rozdzialy_modul.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(text,nil,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
--end;
if(not tabela_artykulow)then tabela_artykulow={};end;
local spreparowany_uzyskany_tekst_rozdzialu=nil;
----
local tabela_rozdzial_artykulow;
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then
tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
----
tabela_rozdzial_artykulow=tabela_artykulow[numer_rozdzialu_w_ksiazce];
----
local rozdzial_na_tekst=p.AnalizaNapisuWprowadzeniaTekstu(rozdzial,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
----
tabela_rozdzial_artykulow[1]={rozdzial_na_tekst,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany,},rozdzial,};
spreparowany_uzyskany_tekst_rozdzialu=rozdzial_na_tekst;
end;
local czy_spis_rzeczy_napis_wprowadzenia_tekstu=(poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[spreparowany_uzyskany_tekst_rozdzialu]);
if(czy_spis_rzeczy_napis_wprowadzenia_tekstu)then
poziom_spisu_tresci=poziom_rozdzialu;
czy_jest_spis_tresci=true;
elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then
if((((poziom_spisu_tresci>0)and(poziom_rozdzialu>0))or((poziom_spisu_tresci<=0)and(poziom_rozdzialu<=0)))and(math.abs(poziom_spisu_tresci or 0)<math.abs(poziom_rozdzialu)))then
wliczaj_artykuly_tego_rozdzialu=true;
else
wliczaj_artykuly_tego_rozdzialu=nil;
dalej_nie_rozwazaj_spis_tresci=true;
end;
end;
local function iteratorTekstuNaglowka()
local re="([#:*;]*)[^%S\n]*([%d%.]*[^%S\n]*[^\n]+)";
local iter=nil;
local tak=nil;
local czy_rozdzial=nil;
return function()
if(not czy_rozdzial)then
if((poziom_rozdzialu or 0)>0)then
if(not iter)then
iter=mw.ustring.gmatch(rozdzial,"([^\n]+)");
end;
local wartosc=iter();
if(not wartosc)then
czy_rozdzial=true;
iter=nil;
else
return "","",wartosc,true;
end;
else
czy_rozdzial=true;
end;
end;
local function dane_iteratora()
if(not iter)then
iter=mw.ustring.gmatch(text,"\n"..re);
end;
local przedrostek_listy,tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci=iter();
if(przedrostek_listy and tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci)then
local wyzyskane_wywolanie_szablonu_spis_tresci,tekstowy_przedrostek=stronicowyparser_rozdzialy_modul.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci);
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
else
return nil;
end;
end;
if(not tak)then
tak=true;
local przedrostek_listy,tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci=mw.ustring.match(text,"^"..re);
if(przedrostek_listy and tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci)then
local wyzyskane_wywolanie_szablonu_spis_tresci,tekstowy_przedrostek=stronicowyparser_rozdzialy_modul.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci);
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
else
return dane_iteratora();
end;
end;
return dane_iteratora();
end;
end;
----
local function LiniaArtykulow(linia)
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
local szablon,obiekt,kod=iter();
if((not szablon) or (not kod) or(not obiekt))then return {};end;
local function SzablonAnalizujKompletnosc(szablon)
----
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
----
return stronicowyparser_obiekty_modul.szablony_kompletowania_stron_woluminu[nazwa_szablonu];
end);
return wynik;
end;
-----
local tak_pierwsze=((obiekt=="SZABLON") and SzablonAnalizujKompletnosc(szablon) or nil);
-----
for szablon,obiekt,kod in iter do
if(obiekt=="SZABLON")then
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
local tak_drugie=SzablonAnalizujKompletnosc(szablon);
if(tak_pierwsze)then
if(tak_drugie)then
linia=mw.ustring.gsub(linia,"(%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu()..")(%s*)("..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)..")","%1,%2%3");
end;
else
if(tak_drugie)then
linia=mw.ustring.gsub(linia,"(%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)..")(%s*)(%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu()..")","%1,%2%3");
end;
end;
end;
end;
local tabela_linii_artykulow=mw.text.split(linia,"%s*,%s*",false);
for i=1,#tabela_linii_artykulow,1 do
tabela_linii_artykulow[i]=mw.ustring.gsub(tabela_linii_artykulow[i],"&#"..mw.ustring.byte(',')..";",",");
end;
return tabela_linii_artykulow;
end;
local iterator=iteratorTekstuNaglowka();
local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial]));
for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do
local nie_pomijaj_tego_rozdzialu=false;
if((not przedrostek_listy)or(#przedrostek_listy==0))then
local rozdzial,czy_z_kropka=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if(((rozdzial)and(#rozdzial<=maksymalny_rozmiar_rozdzialu_zerowego))or(not rozdzial))then
nie_pomijaj_tego_rozdzialu=true;
end;
else
local czy_pominac_ten_rozdzial_jako_linie=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrostek_listy,linia,true,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
if(not czy_pominac_ten_rozdzial_jako_linie)then
nie_pomijaj_tego_rozdzialu=true;
else
nie_pomijaj_tego_rozdzialu=false;
end;
end;
if(nie_pomijaj_tego_rozdzialu)then
local ile=0;
local linia_rozwazana=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(linia,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,function(szablon,obiekt,kod--[[,czy_sam_siebie]])
if(obiekt=="SZABLON")then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
----
local czy_link=linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]
or inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]
or stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu ,tablica_danych_parametrow_szablonu_strony,kod);
local czy_szablon=czy_link or szablony_kompletowania_stron_woluminu[nazwa_szablonu]
or szablony_licencji[nazwa_szablonu]
--or szablony_ozdobne_stron_woluminu[nazwa_szablonu];
if(czy_link)then ile=ile+1;end;
return czy_szablon,obiekt,kod;
end);
elseif(obiekt=="LINKW")then
if(specjalne_modul["CzyLinkWewnętrzny"](szablon))then
ile=ile+1;
return true,obiekt,kod;
end;
elseif(obiekt=="LINKZ")then
ile=ile+1;
return true,obiekt,kod;
end;
end);
----
local czy_linia_uwzgledniana=mw.ustring.match(linia_rozwazana,"^%s*%-%-+(.*)%-%-+%s*$");
local czy_linia=((not czy_linia_uwzgledniana)and(mw.ustring.match(linia_rozwazana,"^%s*[%-%+%=%~]+.*$")
or ((#przedrostek_listy==0)and((mw.ustring.match(linia_rozwazana,"!"))and(mw.ustring.match(linia_rozwazana,"[^!]%s*$"))))
or mw.ustring.match(linia_rozwazana,"^%s*<")) or nil);
----
local nowa_linia=false;
local function WsadzanieParametryDoTablicy(linia,czy_linia_uwzgledniana)
return function(tabela_rozdzial_artykulow2,numer_podtablicy_w_tablicy,tab_stare)
--if((czy_spis_rzeczy_napis_wprowadzenia_tekstu)and(numer_podtablicy_w_tablicy>2))then return;end;
if((czy_rozdzial_centrowany)and(w_rozdziale)and(czy_linia_uwzgledniana)and(tab_stare[2])and(tab_stare[2][1]))then
tab_stare[2][1]=tab_stare[2][1]+1;
end;
if(not w_rozdziale)then
local function CzyZaliczac()
return ((not mw.ustring.match(linia,"^%w+%p+"))
and mw.ustring.match(linia,"^%s*'*%s*%w+"));
--or mw.ustring.match(linia,"^%s*'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu("LINKZ"));
end;
if(nowa_linia)then
tab_stare[2][4]=true;
table.insert(tabela_rozdzial_artykulow2[numer_podtablicy_w_tablicy],tab_stare);
elseif(((poziom_rozdzialu)or(#(przedrostek_listy or "")>0))and((ile>1)or(CzyZaliczac())))then
nowa_linia=true;
numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
tabela_rozdzial_artykulow=tabela_artykulow[numer_rozdzialu_w_ksiazce];
----
local rozdzial_na_tekst=p.AnalizaNapisuWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
----
tabela_rozdzial_artykulow[1]={rozdzial_na_tekst,{-#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,false,},linia,};
tab_stare[2][4]=true;
tab_stare[6]=(numer_podtablicy_w_tablicy>2) and 0 or nil;
tabela_rozdzial_artykulow[numer_podtablicy_w_tablicy]={};
table.insert(tabela_rozdzial_artykulow[numer_podtablicy_w_tablicy],tab_stare);
else
table.insert(tabela_rozdzial_artykulow2[numer_podtablicy_w_tablicy],tab_stare);
end;
else
table.insert(tabela_rozdzial_artykulow2[numer_podtablicy_w_tablicy],tab_stare);
end;
end;
end;
local function AnalizaLiniiObiekty(linia_rozwazana)
local tab_linia=LiniaArtykulow(linia_rozwazana);
for k=1,#tab_linia,1 do
local iterator2=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tab_linia[k],pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
local tab_nieobslugiwane=nil;
for szablon,obiekt,kod in iterator2 do
local czy_szablon=(obiekt=="SZABLON");local czy_link=((obiekt=="LINKW")or(obiekt=="LINKZ"));
if(czy_szablon or czy_link)then
local przerwij=nil;
if(czy_szablon)then
----
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu ,tabela_modyfikatorow)
----
--local przerwij=nil;
local tabela_spisu=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu];
if(tabela_spisu)then
if(tabela_spisu[1]==true)then
--local tabela_parametrow_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon,nil,nil,nil ,tablica_danych_parametrow_szablonu_strony,kod);
local numer_link=tabela_spisu["numer_link"];
for name,value in pairs(tabela_parametrow_szablonu)do
if(name~=numer_link)then
local kod_w_nie_obslugiwanych=tabela_parametrow_szablonu[name];
local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(kod_w_nie_obslugiwanych,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
if(not tab_nieobslugiwane)then tab_nieobslugiwane={};end;
for szablon,obiekt,kod in iter do
if(not tab_nieobslugiwane[obiekt])then tab_nieobslugiwane[obiekt]={};end;
tab_nieobslugiwane[obiekt][kod]=true;
end;
end;
end;
local tyt=tabela_parametrow_szablonu[numer_link];
przedrostek_listy="";
tekstowy_przedrostek,szablon=mw.ustring.match(tyt,"^'*[^%S\n]*([%d%.]*)[^%S\n]*([^\n]-)'*$");
przerwij=true;
else
przedrostek_listy="";
tekstowy_przedrostek=tabela_parametrow_szablonu[tabela_spisu["numer"]];
szablon=tabela_parametrow_szablonu[tabela_spisu["link"]];
przerwij=true;
end;
end;
end);
end;
--[[if(przerwij)then
local iterator3=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(szablon,pelna_nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul);
for szablon2,obiekt2,kod2 in iterator3 do
if(obiekt2=="SZABLON")then
local tabela_parametrow_szablonu,nazwa_szablonu,tablica_modyfikatorow=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon2,nil,nil,nil,tablica_danych_parametrow_szablonu_strony,kod2);
local tabela_linku=stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu];
if(tabela_linku)then
szablon=szablon2;
break;
end;
elseif(obiekt2=="LINKW")then
szablon=szablon2;
break;
end;
end;
end;]]
local pozycja_artykulu=nil;local nazwa=nil;
local tab_pozycja_elementow_w_spisie_rzeczy;local numer_rodzaju_artykulu_poprz;local id;local parametry_szablonu;local kom;
local link_szablon=nil;
local czy_obslugiwane=nil;
local CzyObslugiwane=function()
local wartosc=((tab_nieobslugiwane[obiekt])and(tab_nieobslugiwane[obiekt][kod]));
czy_obslugiwane=wartosc;
return (not wartosc);
end;
if((--[[wliczaj_artykuly_tego_rozdzialu]] true)and(not przerwij)and((not tab_nieobslugiwane)or(CzyObslugiwane())))then
local linia_artykokow=tab_linia[k];
numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych=WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,WsadzanieParametryDoTablicy(linia,czy_linia_uwzgledniana),tabela_rozdzial_artykulow,tablica_artykulow_zebranych,wliczaj_artykuly_tego_rozdzialu,szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,--[[]]przedrostek_listy,tekstowy_przedrostek,w_rozdziale,linia_artykokow--[[]]);
--mw.log()
if((not czy_obslugiwane)and(not numer_rodzaju_artykulu_poprz))then
link_szablon=licencja_z_autorem and (czy_artykul_korzystany and mw.ustring.match(szablon,"({{[^{}]+}})") or nil) or nil;
end;
--mw.logObject(tabela_rozdzial_artykulow)
else
link_szablon=licencja_z_autorem and (czy_artykul_korzystany and mw.ustring.match(szablon,"({{[^{}]+}})") or nil) or nil;
end;
--[[if(przerwij)then break;end;]]
if((not numer_rodzaju_artykulu_poprz)and(not przerwij)and(link_szablon)and((not tab_pozycja_elementow_w_spisie_rzeczy)or(not tab_pozycja_elementow_w_spisie_rzeczy[1]))and(czy_artykul_korzystany)and(licencja_z_autorem))then
---
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu_licencji,nazwa_szablonu_licencji,tabela_modyfikatorow_licencji)
if(stronicowyparser_obiekty_modul.szablony_licencji[nazwa_szablonu_licencji])then
if(tabela_parametrow_szablonu_licencji)then
local autor=tabela_parametrow_szablonu_licencji["Autor"];
local szkoly=tabela_parametrow_szablonu_licencji["Ukończone szkoły"];
local email=tabela_parametrow_szablonu_licencji["Email"];
local dotyczy=tabela_parametrow_szablonu_licencji["Dotyczy"];
local licencjonowanie=tabela_parametrow_szablonu_licencji["Licencjonowanie"];
local umowa_prawna=tabela_parametrow_szablonu_licencji["Umowa prawna"];
local konsekwencje=tabela_parametrow_szablonu_licencji["Konsekwencje"];
local frame=mw.getCurrentFrame();
local DekodowanieTekstu=stronicowyparser_potrzebne_modul.DekodowanieTekstu(pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci);
local czy_autor=parametry_modul.CzyTak(autor);
if(czy_autor)then
autor=DekodowanieTekstu(autor,0,nil);
end;
if(parametry_modul.CzyTak(szkoly))then
szkoly=DekodowanieTekstu(szkoly,0,nil);
end;
if(parametry_modul.CzyTak(email))then
email=DekodowanieTekstu(email,0,nil);
end;
if(parametry_modul.CzyTak(dotyczy))then
dotyczy=DekodowanieTekstu(dotyczy,0,nil);
end;
if(parametry_modul.CzyTak(licencjonowanie))then
licencjonowanie=DekodowanieTekstu(licencjonowanie,0,nil);
end;
if(parametry_modul.CzyTak(umowa_prawna))then
umowa_prawna=DekodowanieTekstu(umowa_prawna,0,nil);
end;
if(parametry_modul.CzyTak(konsekwencje))then
konsekwencje=DekodowanieTekstu(konsekwencje,0,nil);
end;
if(czy_autor)then
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje,};
licencja_z_autorem=false;
end;
return true;
elseif(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;
end);
if(wynik)then break;end;
end;
end;
end;
end;
end;
if(not czy_linia)then AnalizaLiniiObiekty(linia_rozwazana);end;
end;
end;
numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
end;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
---rozdzial_tab[1]=rozdzial;rozdzial_tab[2]=linia rozdziału
AnalizaRozdzialu(rozdzial_tab[1],rozdzial_tab[2],text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany);
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",nil,tekst_rozwiniety_calego_artykulu,nil,nil,nil,nil);
end;
--mw.logObject(tabela_artykulow);
if(czy_artykul_korzystany)then
return tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci;
else
return tabela_artykulow,nil,przekierowanie_spisu_tresci;
end;
end;
function p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku(tabela_artykulow)
local parametry_modul=require("Module:Parametry");
if(not parametry_modul.TypeTable(tabela_artykulow))then return;end;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local odczyt_jakie_spisy_tresci=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu;
local jakie_spisy_tresci=parametry_modul["KopiujTabelęElementów"](odczyt_jakie_spisy_tresci);
setmetatable(jakie_spisy_tresci,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
for _,tab_lista in ipairs(tabela_artykulow)do
if(tab_lista[2])then
for _,artykul_w_bazie_element in ipairs(tab_lista[2])do
local artykul_w_bazie=artykul_w_bazie_element[1];
local czy_table=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie);
artykul_w_bazie=czy_table and artykul_w_bazie[1] or artykul_w_bazie;
local artykul_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul_w_bazie);
if(jakie_spisy_tresci[artykul_bez_naglowka_w_bazie])then
return artykul_bez_naglowka_w_bazie;
end;
end;
end;
end;
end;
function p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,czy_artykul_korzystany,__FUNKCJA_SPISU_RZECZY,__FUNKCJA_ZBIERANIA_DANYCH)
local adres_ksiazki_glownego_spisu_tresci=nil;
local techniczne_modul=require("Module:Techniczne");
local nazwy_modul=require("Module:Nazwy");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
local ile2,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki,tekst=true,};
if(ile2>0)then
local strona_spisu_tresci=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_ksiazki);
if(strona_spisu_tresci)then
local html_modul=require("Module:Html");
strona_spisu_tresci=html_modul.DecodeHtml(strona_spisu_tresci,true);
local tabela_nazw={};
local nazwa_przestrzeni2=nazwy_modul["NAZWAPRZESTRZENI"](strona_spisu_tresci,tabela_nazw);
local nazwa_przestrzeni_ksiazki2=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona_spisu_tresci,tabela_nazw);
local nazwa_ksiazki2=(nazwa_przestrzeni_ksiazki2=="")
and nazwy_modul["NAZWAKSIĄŻKI"](strona_spisu_tresci,tabela_nazw)
or nazwy_modul["SUBNAZWAKSIĄŻKI"](strona_spisu_tresci,tabela_nazw);
----
if((nazwa_przestrzeni~=nazwa_przestrzeni2)or(nazwa_przestrzeni_ksiazki~=nazwa_przestrzeni_ksiazki2)or(nazwa_ksiazki~=nazwa_ksiazki2))then
if(((nazwa_przestrzeni2==nazwy_np_modul.Main)or(nazwa_przestrzeni2==nazwy_np_modul.Wikijunior))or(((nazwa_przestrzeni2==nazwy_np_modul.Wikibooks)or(nazwa_przestrzeni2==nazwy_np_modul.User))and(nazwa_przestrzeni_ksiazki2~="")))then
----
adres_ksiazki_glownego_spisu_tresci={nazwa_przestrzeni2,nazwa_przestrzeni_ksiazki2,nazwa_ksiazki2,};
local wynik=__FUNKCJA_SPISU_RZECZY and __FUNKCJA_SPISU_RZECZY(nazwa_przestrzeni2,nazwa_przestrzeni_ksiazki2,nazwa_ksiazki2) or nil;
if((wynik or 0)==1)then
return 1;
end;
----
nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki=nazwa_przestrzeni2,nazwa_przestrzeni_ksiazki2,nazwa_ksiazki2;
pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
else
return 2;
end;
end;
end;
end;
local parametry_modul=require("Module:Parametry");
local function Spis(tablista_artykulow,spis_tresci,tab_inne_spisy,nazwa_glownego_spisu,numer)
if((parametry_modul.TypeTable(tablista_artykulow)) and parametry_modul["CzySąElementyTablicy"](tablista_artykulow))then
local czy_spis_tresci_table=parametry_modul.TypeTable(spis_tresci);
local spis_tresci_strona=czy_spis_tresci_table and spis_tresci[1] or spis_tresci;
----
local przekierowanie_strona=czy_spis_tresci_table and spis_tresci[2] or nil;
local tab_element={[1]={((not spis_tresci) and "Główny spis treści" or ("Spis treści - "..spis_tresci_strona)),{((spis_tresci) and 1 or nil),nil,nil,},["spis"]={spis_tresci_strona or nazwa_glownego_spisu or "",numer}},[2]=nil,[3]=nil,};
---
if(not tablista_artykulow[1][1][2][1])then
for numer,tab_lista in ipairs(tablista_artykulow[1])do
if(numer>1)then
tab_element[numer]=tab_lista;
end;
end;
table.remove(tablista_artykulow,1);
end;
---
for _,tab_lista in ipairs(tablista_artykulow)do
local numer_rozdzialu=tab_lista[1][2][1];
local czy_rozdzial_centrowany=tab_lista[1][2][4];
if(numer_rozdzialu>0)then
tab_lista[1][2][1]=numer_rozdzialu+1;
end;
if(czy_rozdzial_centrowany)then break;end;
end;
---
numer=numer+1;
---
--if(not tablista_artykulow)then tablista_artykulow={};end;
----
table.insert(tablista_artykulow,1,tab_element);
if(spis_tresci)then
if(not tab_inne_spisy)then tab_inne_spisy={};end;
table.insert(tab_inne_spisy,spis_tresci);
if(not tablista_artykulow[1][2])then tablista_artykulow[1][2]={};end;
local tab_stare={czy_spis_tresci_table and {spis_tresci_strona,nil,przekierowanie_strona} or spis_tresci,{0,"","",true,},"[[:"..pelna_nazwa_ksiazki.."/" ..spis_tresci_strona.."]]",false,};
table.insert(tablista_artykulow[1][2],1,tab_stare);
end;
end;
return tablista_artykulow,tab_inne_spisy,numer;
end;
local function InneSpisy(tablista_artykulow,tab_inne_spisy,spis_tresci,numer)
--mw.logObject(tablista_artykulow,"TYTAn123fhh");
local tablista_artykulow_iter,tablica_licencji,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,spis_tresci,false,nil,__FUNKCJA_ZBIERANIA_DANYCH);
--mw.logObject(tablista_artykulow_iter,spis_tresci);
----
if((tablista_artykulow_iter)and(parametry_modul.TypeTable(tablista_artykulow_iter)))then
tablista_artykulow_iter,tab_inne_spisy,numer=Spis(tablista_artykulow_iter,(not przekierowanie_spisu_tresci)and spis_tresci or {przekierowanie_spisu_tresci,spis_tresci,},tab_inne_spisy,nil,numer);
for _,value in ipairs(tablista_artykulow_iter)do
if((not tablista_artykulow)or(not parametry_modul.TypeTable(tablista_artykulow)))then tablista_artykulow={};end;
table.insert(tablista_artykulow,value);
end;
end;
return tablista_artykulow,tab_inne_spisy,numer;
end;
local function SpisRzeczy(tabela_artykulow,tab_inne_spisy)
local artykul_spisu_rzeczy=p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku(tabela_artykulow)
if(artykul_spisu_rzeczy)then
local numer=1;
tabela_artykulow,tab_inne_spisy,numer=Spis(tabela_artykulow,nil,tab_inne_spisy,"",numer);
tabela_artykulow,tab_inne_spisy,numer=InneSpisy(tabela_artykulow,tab_inne_spisy,artykul_spisu_rzeczy,numer);
end;
return tabela_artykulow,tab_inne_spisy;
end;
local adres_ustawien=((nazwy_np_modul.Template~="")and (nazwy_np_modul.Template..":") or "").."NawigacjaSpecjalna/Nawigacja/"..pelna_nazwa_ksiazki;
----
adres_ustawien=techniczne_modul.PrzekierowanieDoStrony(adres_ustawien) or adres_ustawien;
----
local tekst=techniczne_modul.WikikodStrony{["przestrzeń"]="",["nazwa"]=adres_ustawien,};
if(not tekst)then
local tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"",czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
local tab_inne_spisy;
tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and "" or {przekierowanie_spisu_tresci,"",},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
end;
local tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji={};
local szablonowe_modul=require("Module:Szablonowe");
local tekst_zakodowany=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,adres_ustawien,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji,nil,nil);
local stronicowyparser_obiekty_modul=mw.loadData('Module:StronicowyParser/obiekty');
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_zakodowany,adres_ustawien,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji);
local szablon_uklad_autonawigacji;
local tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji={};
local tabela_parametrow_szablonu_uklad_autonawigacji;
local nazwa_szablonu_uklad_autonawigacji;
local tabela_modyfikatorow_uklad_autonawigacji;
local adres_ustawien_szablonowy=szablonowe_modul["SzablonowaKompletnaNazwaStrony"](adres_ustawien,nil,nil);
for szablon,obiekt,kod in iterator do
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji,kod,adres_ustawien_szablonowy,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
tabela_parametrow_szablonu_uklad_autonawigacji=tabela_parametrow_szablonu;
nazwa_szablonu_uklad_autonawigacji=nazwa_szablonu;
tabela_modyfikatorow_uklad_autonawigacji=tabela_modyfikatorow;
if(nazwa_szablonu==stronicowyparser_obiekty_modul.uklad_autonawigacji)then
szablon_uklad_autonawigacji=szablon;
return true;
end;
end);
if(wynik)then break;end;
end;
end;
if(not szablon_uklad_autonawigacji)then
local tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"",czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
local tab_inne_spisy;
tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and "" or {przekierowanie_spisu_tresci,"",},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
end;
--local tabela_parametrow_szablonu_uklad_autonawigacji,nazwa_szablonu_uklad_autonawigacji,modyfikatory_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon_uklad_autonawigacji);
if(not tabela_parametrow_szablonu_uklad_autonawigacji)then
local tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"",czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
local tab_inne_spisy;
tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and "" or {przekierowanie_spisu_tresci,"",},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
end;
local parametry_modul=require("Module:Parametry");
local automat_manualny=tabela_parametrow_szablonu_uklad_autonawigacji["automat manualny"];
----
local html_modul=require("Module:Html");
----
local czy_automat_manualny=(automat_manualny) and parametry_modul.CzyTak(automat_manualny) or nil;
if(czy_automat_manualny)then
local sub_nazwa_spis_tresci;
local spis_tresci=tabela_parametrow_szablonu_uklad_autonawigacji["spis treści"];
spis_tresci=spis_tresci and html_modul.DecodeHtml(spis_tresci,true) or nil;
if(parametry_modul.CzyTak(spis_tresci))then
local nazwy_modul=require("Module:Nazwy");
local tabela_nazw={};
local pelna_nazwa_ksiazki_spisu_tresci=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](spis_tresci,tabela_nazw);
if(pelna_nazwa_ksiazki_spisu_tresci==pelna_nazwa_ksiazki)then
sub_nazwa_spis_tresci=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](spis_tresci,tabela_nazw);
else
sub_nazwa_spis_tresci="";
end;
else
sub_nazwa_spis_tresci="";
end;
local tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,sub_nazwa_spis_tresci,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and sub_nazwa_spis_tresci or {przekierowanie_spisu_tresci,sub_nazwa_spis_tresci,},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
end;
local frame=mw.getCurrentFrame();
for name,value in pairs(tabela_parametrow_szablonu_uklad_autonawigacji)do
tabela_parametrow_szablonu_uklad_autonawigacji[name]=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(value,adres_ustawien,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji,function(szablon,obiekt,kod)
if(obiekt=="ZMIENNA")then
szablon,_=mw.ustring.gsub(szablon,"{{{([^|{}]*)|([^{}]-)}}}","{{(((}}%1{{!}}%2{{)))}}");
szablon,_=mw.ustring.gsub(szablon,"{{{([^|{}]*)}}}","{{(((}}%1{{)))}}");
return szablon;
end;
end),};
end;
local nazwy_modul=require("Module:Nazwy");
local bez_spisow_tresci=tabela_parametrow_szablonu_uklad_autonawigacji["bez spisów treści"];
local czy_bez_spisow_tresci=(bez_spisow_tresci) and parametry_modul.CzyTak(bez_spisow_tresci) or nil;
local bez_analizy_spisow_tresci=tabela_parametrow_szablonu_uklad_autonawigacji["bez analizy spisów treści"];
local czy_bez_analizy_spisow_tresci=(bez_analizy_spisow_tresci) and parametry_modul.CzyTak(bez_analizy_spisow_tresci) or nil;
----
local tab_inne_spisy;local nazwa_glownego_spisu;
local tablista_artykulow;
local licencja;
local numer=1;
----
--local pelna_nazwa_spisu_tresci=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
----
local tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika;local tabela_licencji_ksiazek_wedlug_strony_glownej_podrecznika;local przekierowanie_spisu_tresci;
if(not czy_bez_spisow_tresci)then
local spis_tresci_main=tabela_parametrow_szablonu_uklad_autonawigacji["spis treści"];
if(spis_tresci_main)then
spis_tresci_main=html_modul.DecodeHtml(spis_tresci_main,true);
---
spis_tresci_main=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=spis_tresci_main,[2]=pelna_nazwa_ksiazki,};
end;
local tabela_nazw={};
local pelna_nazwa_ksiazki_wedlug_glownego_spisu_tresci=parametry_modul.CzyTak(spis_tresci_main)
and nazwy_modul["PEŁNANAZWAKSIĄŻKI"](spis_tresci_main,tabela_nazw)
or pelna_nazwa_ksiazki;
if(pelna_nazwa_ksiazki~=pelna_nazwa_ksiazki_wedlug_glownego_spisu_tresci)then
return 0;
end;
nazwa_glownego_spisu=parametry_modul.CzyTak(spis_tresci_main)
and nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](spis_tresci_main,tabela_nazw)
or "";
else
nazwa_glownego_spisu="";
end;
if((not czy_bez_spisow_tresci)and(not czy_bez_analizy_spisow_tresci))then
tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika,tabela_licencji_ksiazek_wedlug_strony_glownej_podrecznika,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_glownego_spisu,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
if(przekierowanie_spisu_tresci)then
nazwa_glownego_spisu={przekierowanie_spisu_tresci,nazwa_glownego_spisu,};
end;
if((not tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika)or(tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika==0))then
return tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika;
end;
local IteratorSpisTresci=function()
local liczba=1;
return function()
local spis_tresci=tabela_parametrow_szablonu_uklad_autonawigacji["spis treści "..liczba];
liczba=liczba+1;
return spis_tresci;
end;
end;
local iter=IteratorSpisTresci();
tablista_artykulow=tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika;
licencja=tabela_licencji_ksiazek_wedlug_strony_glownej_podrecznika;
tablista_artykulow,tab_inne_spisy,numer=Spis(tablista_artykulow,nil,tab_inne_spisy,nazwa_glownego_spisu,numer);
local artykul_spisu_rzeczy=p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku(tablista_artykulow);
if(artykul_spisu_rzeczy)then
tabela_artykulow,tab_inne_spisy,numer=InneSpisy(tablista_artykulow,tab_inne_spisy,artykul_spisu_rzeczy,numer);
end;
for spis_tresci in iter do
---
if(not parametry_modul.CzyTak(spis_tresci))then return;end;
spis_tresci=html_modul.DecodeHtml(spis_tresci,true);
spis_tresci=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=spis_tresci,[2]="",};
---
tablista_artykulow,tab_inne_spisy,numer=InneSpisy(tablista_artykulow,tab_inne_spisy,spis_tresci,numer);
end;
end;
----
local IteratorFun=function()
local liczba=1;
local STRONA=function(liczba)return liczba*2-1;end;
local NAZWA=function(liczba)return liczba*2;end;
return function()
local strona=tabela_parametrow_szablonu_uklad_autonawigacji[STRONA(liczba)];
local nazwa=tabela_parametrow_szablonu_uklad_autonawigacji[NAZWA(liczba)];
liczba=liczba+1;
return strona,nazwa;
end;
end;
local tablica_stron_ksiazki={};
local tablica_stron_inne={};
local iter=IteratorFun();
local ksiazkawe_modul=require("Module:Książkowe");
local pudelko_modul=require("Module:Pudełko");
local wiki_modul=require("Module:Wiki");
local dodatkowe_artykuly=nil;
local tablica_artykulow_zebranych={};
local tab_nazwa_spisow_przekierowaniowych={};
local dodatkowe_artykuly=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
local tabela_rozdzial_artykulow=nil;
----
local pelna_nazwa_spisu_tresci=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
local pelna_nazwa_spisu_tresci_szablonowa=szablonowe_modul["SzablonowaKompletnaNazwaStrony"](pelna_nazwa_spisu_tresci);
----
--local tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji={};
----
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local DekodowanieTekstu=stronicowyparser_potrzebne_modul.DekodowanieTekstu(adres_ustawien,adres_ustawien_szablonowy,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji,tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
for strona,nazwa in iter do
local function ZbieranieDanychStronZAutonawigacji()
if(not parametry_modul.CzyTak(strona))then return;end;
strona=html_modul.DecodeHtml(strona,true);
nazwa=parametry_modul.CzyTak(nazwa) and html_modul.DecodeHtml(nazwa,true) or nil;
if(not dodatkowe_artykuly)then
if((not tablista_artykulow)or(not parametry_modul.TypeTable(tablista_artykulow)))then tablista_artykulow={};end;
table.insert(tablista_artykulow,{[1]={"Dodatkowe artykuły",{1,nil,nil},["dodatkowe"]="tak",},[2]=nil,});
tabela_rozdzial_artykulow=tablista_artykulow[#tablista_artykulow];
end;
---
strona=DekodowanieTekstu(strona,2,nil);
strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=pelna_nazwa_ksiazki,};
local WsadzanieParametryDoTablicy=function(tabela_rozdzial_artykulow,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare)
if(not dodatkowe_artykuly)then dodatkowe_artykuly={};end;
----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab_stare[1]);
local adres=czy_table_baza_artykulu and tab_stare[1][1] or tab_stare[1];
local czy_w_podreczniku=tab_stare[5];
local kod_jezyka_koncowy=czy_table_baza_artykulu and tab_stare[1][5] or nil;
local kod_projektu_koncowy=czy_table_baza_artykulu and tab_stare[1][6] or nil;
----
table.insert(dodatkowe_artykuly,{((adres) and (kod_jezyka_koncowy or kod_projektu_koncowy) and({adres,kod_jezyka_koncowy,kod_projektu_koncowy,}) or adres),nazwa,czy_w_podreczniku,});
----
table.insert(tabela_rozdzial_artykulow[numer_rodzaju_artykulow_w_nie_podreczniku],tab_stare);
end;
local numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy;
numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych=WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,WsadzanieParametryDoTablicy,tabela_rozdzial_artykulow,tablica_artykulow_zebranych,true,{strona,nazwa,},nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"",adres_ustawien,adres_ustawien_szablonowy,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji,tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji,nil,nil,tab_nazwa_spisow_przekierowaniowych,--[[]]"*","",false,"[[:"..strona..((parametry_modul.CzyTak(nazwa))and("|"..nazwa) or "").."]]");
end;
ZbieranieDanychStronZAutonawigacji();
end;
----
return tablista_artykulow,licencja,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,adres_ksiazki_glownego_spisu_tresci;
end;
return p;
gsrakln5r5fvekn421mtun7a8r62pzj
Moduł:Szablonowe
828
58954
557964
557796
2026-09-29T09:04:20Z
Persino
2851
557964
Scribunto
text/plain
local p={};
--zamykanie
local znak_127=mw.loadData("Module:Html/dane").znak_127;
function p.NormaWzoruKodowaniaTekstu(co,numer_szablonu)
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.NormaKoduKodowaniaTekstu(kod,numer)
local wikikodnumer=znak_127.."'\"`UNIQ--"..kod.."-"..numer.."-QINU`\"'"..znak_127;
return wikikodnumer;
end;
function p.NormaWzoruKodowaniaEncodeWikiTekstu(co,numer_szablonu)
local wzor=znak_127.."�*39;"`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`"�*39;"..znak_127;
return wzor;
end;
function p.NormaKoduZakodowanegoEncodeWikiTekstu(kod,numer)
local wzor=znak_127.."'"`UNIQ--"..kod.."-"..numer.."-QINU`"'"..znak_127;
return wzor;
end;
function p.NormaWzoruZakodowanegoWikiTekstu(co,numer_szablonu)
local wzor=znak_127.."'"`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`"'"..znak_127;
return wzor;
end;
function p.NormaKoduZakodowanegoWikiTekstu(kod,numer)
local wikikodnumer=znak_127.."'"`UNIQ--"..kod.."-"..numer.."-QINU`"'"..znak_127;
return wikikodnumer;
end;
function p.NormaWzoruZakodowanegoHtmlTekstu(co,numer_szablonu)
local wzor="%%7F'"`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`"'%%7F";
return wzor;
end;
function p.NormaKoduZakodowanegoHtmlTekstu(kod,numer)
local wikikodnumer="%7F'"`UNIQ--"..kod.."-"..numer.."-QINU`"'%7F";
return wikikodnumer;
end;
function p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY)
local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne");
return szablonowe_potrzebne_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY);
end;
function p.KodujWzoryMatematyczneTekstu(self,tekst_artykulu)
local licznik=0;
local tablica_analizy_obiektow_strony_dany_modul={};
tablica_analizy_obiektow_strony_dany_modul["MATH"]={};
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<[Mm][Aa][Tt][Hh]>(.-)</[Mm][Aa][Tt][Hh]>)",function(szablon)
licznik=licznik+1;
tablica_analizy_obiektow_strony_dany_modul["MATH"][licznik]=szablon;
return p.NormaKoduKodowaniaTekstu("MATH",licznik);
end)
return tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul;
end;
function p.NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt)
local parametry_modul=require("Module:Parametry");
local __max=0;
for numer,_ in pairs(tablica_analizy_obiektow_strony_dany_modul[obiekt])do
if(parametry_modul.TypeNumber(numer))then
__max=math.max(__max,numer);
end;
end;
return __max+1;
end;
function p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul)
if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end;
local numer_szablonu={};
local szablonowe_dane_modul=require("Module:Szablonowe/dane");
for obiekt,_ in pairs(szablonowe_dane_modul.tablica_podstawowe_elementy_szablonowe_mediawiki)do
numer_szablonu[obiekt]=p.NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt);
end;
for obiekt,_ in pairs(szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki)do
numer_szablonu[obiekt]=p.NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt);
end;
return numer_szablonu;
end;
function p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu()
local stronicowyparser_dane_modul=mw.loadData("Module:Szablonowe/dane");
local tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji=stronicowyparser_dane_modul.tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji;
return tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji;
end;
function p.UsuwanieStarychZebranychInformacjiBazyTablicyKodowaniaWikikodu(tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_usun)
local tab_analiza=p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu();
for obiekt,tab_obiekt in pairs(tablica_analizy_obiektow_strony_dany_modul)do
for kod,wartosc in pairs(tab_obiekt)do
local tablica=getmetatable(tablica_analizy_obiektow_strony_dany_modul[obiekt]).tablica();
local tab_wartosc=tablica[kod];
if(tab_wartosc)then
if((not tab_usun[obiekt])or(not tab_usun[obiekt][kod]))then
if(tab_wartosc[2])then
for obiekt_tab,tab_kod in pairs(tab_analiza)do
if(obiekt_tab==obiekt)then
for _,liczba in ipairs(tab_kod)do
local tab_liczba=tablica_danych_parametrow_szablonu_strony[liczba];
if(tab_liczba)then
tab_liczba[kod]=nil;
tab_wartosc[2]=false;
end;
end;
end;
end;
end;
else
tablica[kod]=nil;
end;
end;
end;
end;
end;
function p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4)
if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end;
local czy_jedno=false;
----
local parametry_modul=require("Module:Parametry");
----
local function IteratorMain(tekst_rozwiniety_calego_artykulu,poziom_iteracji,obiekt,kod,czy_stare)
local iter=true;local iter_fun;
if((tekst_rozwiniety_calego_artykulu=="")or(czy_stare))then
iter_fun=function()
local iter=function()
return nil;
end;
return iter;
end;
else
iter_fun=function()
if((not obiekt)and(not kod))then
local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu());
return iter;
else
local wynik=__FUNKCJA4 and __FUNKCJA4(tekst_rozwiniety_calego_artykulu,obiekt,kod,poziom_iteracji) or nil;
local szablon=wynik or (((obiekt)and(kod)) and (tablica_analizy_obiektow_strony_dany_modul[obiekt]))and tablica_analizy_obiektow_strony_dany_modul[obiekt][kod] or tekst_rozwiniety_calego_artykulu;
if((not szablon)or(szablon==""))then
local iter=function()
return nil;
end;
return iter;
else
local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu());
return iter;
end;
end;
end;
end;
local tak=nil;
local iter2=nil;
poziom_iteracji=poziom_iteracji or 0;
local function Iterator()
local function IterMain()
local obiekt,kod;
----
repeat
if((parametry_modul.TypeBoolean(iter))and(iter==true))then iter=iter_fun();end;
obiekt,kod=iter();
if((not obiekt)or(not kod))then return nil;end;
kod=tonumber(kod);
local tak_repeat=false;
if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then
tak_repeat=true;
end;
until (not tak_repeat);
----
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
szablon=(not __FUNKCJA3) and szablon or (__FUNKCJA3(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) or szablon);
if(__FUNKCJA2)then
repeat
local czy_dalej=nil;
local jest_naglowek=__FUNKCJA2(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
if(not jest_naglowek)then
--if(poziom_iteracji>0)then
-- return nil;
--else
repeat
obiekt,kod=iter();
if((not obiekt)or(not kod))then return nil;end;
kod=tonumber(kod);
local tak_repeat=false;
if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then
tak_repeat=true;
end;
until (not tak_repeat);
----
szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
czy_dalej=true;
--end;
end;
until (not czy_dalej);
end;
----
tak=true;
if(__FUNKCJA)then
local wynik,tekst=__FUNKCJA(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu);
if(not wynik)then
czy_jedno=true;
return nil;
else
szablon=wynik;
if(tekst)then
tekst_rozwiniety_calego_artykulu=tekst;
end;
end;
end;
iter2=IteratorMain(szablon,poziom_iteracji+1,obiekt,kod,(obiekt=="STARE"));
return szablon,obiekt,kod,poziom_iteracji;
end;
if(not tak)then
local szablon,obiekt,kod,poziom_iteracji=IterMain();
if(czy_jedno)then return nil;end;
return szablon,obiekt,kod,poziom_iteracji;
else
local szablon,obiekt,kod,poziom_iteracji=iter2();
if(czy_jedno)then return nil;end;
if((not szablon)or(not kod)or(not obiekt))then
tak=nil;
local szablon,obiekt,kod,poziom_iteracji=IterMain();
if(czy_jedno)then return nil;end;
return szablon,obiekt,kod,poziom_iteracji;
else
return szablon,obiekt,kod,poziom_iteracji;
end;
end;
end;
return Iterator;
end;
return IteratorMain(tekst_rozwiniety_calego_artykulu,0,nil,nil,false),tablica_analizy_obiektow_strony_dany_modul;
end;
function p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6,__funkcja7,__funkcja8,__funkcja9,__funkcja10)
local techniczne_modul=require("Module:Techniczne");
local parametry_modul=require("Module:Parametry");
local tab_usun={};
local szablon2=nil;
local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja3,__funkcja4,__funkcja5,function(tekst_szablon,obiekt,kod,poziom_iteracji)
local __SZABLON=function(obiekt,kod)return tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];end;
local tak=((not szablon2)or(not tab_usun)or(not tab_usun[obiekt])or(not tab_usun[obiekt][kod]));
local szablon=__funkcja6 and __funkcja6(tekst_szablon,obiekt,kod,poziom_iteracji,tak,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul)
or (tak and __SZABLON(obiekt,kod) or szablon2);
return szablon;
end);
local poziom_iteracji_poprz=-1;
local tab_dane=nil;
for szablon,obiekt,kod,poziom_iteracji in iterator do
if((tab_dane)and(poziom_iteracji==0))then tab_dane=nil;end;
szablon2=nil;local wynik;
if(__funkcja1)then
local analiza;
szablon2,wynik,analiza=__funkcja1(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul);
if((analiza)and(__funkcja7))then
local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2);
if(czy_szablon_funkcyjny)then szablon2=szablon2();end;
----
local funkcja_temp;local tak_specjalne=false;
if(tab_dane)then
----
local tak=true;
local szablon_temp;local obiekt_temp;local kod_temp;local poziom_iteracji_temp;
for i=#tab_dane,1,-1 do
local tab_pos=tab_dane[i];
local poziom_iteracji_temp=tab_pos[4];
if(poziom_iteracji_temp<poziom_iteracji)then
szablon_temp=tab_pos[1];obiekt_temp=tab_pos[2];kod_temp=tab_pos[3];
tak=tak and ((obiekt_temp and kod_temp)and(tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp]));
if(not tak)then
local Typ=function()
return __funkcja7(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul);
end;
if(not funkcja_temp)then funkcja_temp=Typ;end;
local czy_funkcja_jako_funkcja8=parametry_modul.TypeFunction(__funkcja8);
if(czy_funkcja_jako_funkcja8
and __funkcja8(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul)
)then
tak_specjalne=true;
end;
break;
end;
end;
end;
end;
if(tak_specjalne)then wynik=true;end;
if(funkcja_temp)then funkcja_temp();end;
else
local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2);
if(czy_szablon_funkcyjny)then szablon2=szablon2();end;
end;
end;
if(not wynik)then
szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon2 or szablon);
if((not tab_dane)or(#tab_dane==0))then
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon);
if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true;
else
local tak=true;local tab_wolne;
for i=#tab_dane,1,-1 do
local tab_pos=tab_dane[i];
local poziom_iteracji_temp=tab_pos[4];
if(poziom_iteracji_temp<poziom_iteracji)then
local obiekt_temp=tab_pos[2];local kod_temp=tab_pos[3];
tak=tak and ((obiekt_temp and kod_temp)and((tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp])));
if(not tak)then
tab_wolne=tab_pos;
break;
end;
end;
end;
if(tak)then
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon);
if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true;
else
local obiekt_temp=tab_wolne[2];local kod_temp=tab_wolne[3];
local tekst=tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp];
tekst=mw.ustring.gsub(tekst,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon);
tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]=tekst;
if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true;
end;
end;
-- parametry kodow
local czy_usun_kod=__funkcja10 and __funkcja10(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil;
-- bazowanie kodow
local tak=__funkcja9 and __funkcja9(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tab_usun) or nil;
if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end;
-- funkcje koncowe
local tak=__funkcja2 and __funkcja2(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil;
if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end;
end;
if(not tab_dane)then tab_dane={};end;
if(poziom_iteracji_poprz>poziom_iteracji)then
for i=poziom_iteracji_poprz,poziom_iteracji,-1 do
table.remove(tab_dane);
end;
--elseif(poziom_iteracji_poprz<poziom_iteracji)then
elseif(poziom_iteracji_poprz==poziom_iteracji)then
table.remove(tab_dane);
end;
table.insert(tab_dane,{szablon,obiekt,kod,poziom_iteracji});
if(__funkcja2)then
local tak=__funkcja2(szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul);
if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end;
end;
poziom_iteracji_poprz=poziom_iteracji;
end;
return tekst_rozwiniety_calego_artykulu,tab_usun;
end;
function p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6)
local techniczne_modul=require("Module:Techniczne");
local parametry_modul=require("Module:Parametry");
local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja2,__funkcja3,__funkcja4,__funkcja5);
local poziom_iteracji_poprz=-1;
local tab_poziom_obiekt={};
for szablon,obiekt,kod,poziom_iteracji in iterator do
local function ZamienianieKodowe(szablon_rodzica_zmodyfikowany,obiekt_rodzica_zmodyfikowany,kod_rodzica_zmodyfikowany,szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica)
local kod_kodowy_wynik,dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany,szablon_rodzica_zmodyfikowany,obiekt_rodzica_zmodyfikowany,kod_rodzica_zmodyfikowany,__tablica_analizy_obiektow_strony_dany_modul=__funkcja(szablon,obiekt,kod,poziom_iteracji,szablon_rodzica,obiekt_rodzica,kod_rodzica,((poziom_iteracji>0)and (szablon_rodzica_zmodyfikowany or szablon_rodzica) or tekst_rozwiniety_calego_artykulu),obiekt_rodzica_zmodyfikowany or obiekt_rodzica,kod_rodzica_zmodyfikowany or kod_rodzica,poziom_iteracji_rodzica,tablica_analizy_obiektow_strony_dany_modul);
tablica_analizy_obiektow_strony_dany_modul=__tablica_analizy_obiektow_strony_dany_modul or tablica_analizy_obiektow_strony_dany_modul;
local function ModyfikacjaBazyKodowoSzablonowaDziecka()
if(dziecko_zmodyfikowane)then
if((obiekt_zmodyfikowany)or(kod_zmodyfikowany))then
if(((obiekt_zmodyfikowany)and(obiekt_zmodyfikowany~=obiekt))or((kod_zmodyfikowany)and(kod_zmodyfikowany~=kod)))then
local __obiekt_zmodyfikowany=obiekt_zmodyfikowany or obiekt;
local __kod_zmodyfikowany=kod_zmodyfikowany or kod;
if(not tablica_analizy_obiektow_strony_dany_modul[__obiekt_zmodyfikowany])then
tablica_analizy_obiektow_strony_dany_modul[__obiekt_zmodyfikowany]={};
end;
tablica_analizy_obiektow_strony_dany_modul[__obiekt_zmodyfikowany][__kod_zmodyfikowany]=dziecko_zmodyfikowane;
local fun1=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,__obiekt_zmodyfikowany,__kod_zmodyfikowany,false) or nil;
if(not __tablica_analizy_obiektow_strony_dany_modul)then
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil;
local fun2=__funkcja6 and __funkcja6(nil,obiekt,kod,false) or nil;
end;
else
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane;
local fun3=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod,false) or nil;
end;
else
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane;
local fun4=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod,false) or nil;
end;
end;
end;
local function ModyfikacjaBazyKodowoSzablonowaRodzica(szablon_rodzica_zmodyfikowany)
local __obiekt_rodzica_zmodyfikowany=obiekt_rodzica_zmodyfikowany or obiekt_rodzica;
local __kod_rodzica_zmodyfikowany=kod_rodzica_zmodyfikowany or kod_rodzica;
tablica_analizy_obiektow_strony_dany_modul[__obiekt_rodzica_zmodyfikowany][__kod_rodzica_zmodyfikowany]=szablon_rodzica_zmodyfikowany;
local fun7=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,__obiekt_rodzica_zmodyfikowany,__kod_rodzica_zmodyfikowany,true) or nil;
if(not __tablica_analizy_obiektow_strony_dany_modul)then
if((obiekt_rodzica_zmodyfikowany)or(kod_rodzica_zmodyfikowany))then
if(
((obiekt_rodzica_zmodyfikowany)and(obiekt_rodzica_zmodyfikowany~=obiekt_rodzica))
or((kod_rodzica_zmodyfikowany)and(kod_rodzica_zmodyfikowany~=kod_rodzica))
)then
tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=nil;
local fun5=__funkcja6 and __funkcja6(szablon_rodzica,obiekt_rodzica,kod_rodzica,true) or nil;
end;
end;
end;
end;
if(kod_kodowy_wynik)then
if(poziom_iteracji>0)then
if(not szablon_rodzica_zmodyfikowany)then
if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then
local ile;
local szablon_rodzica=tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica];
szablon_rodzica,ile=mw.ustring.gsub(szablon_rodzica,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik));
if(ile>0)then
ModyfikacjaBazyKodowoSzablonowaRodzica(szablon_rodzica);
ModyfikacjaBazyKodowoSzablonowaDziecka();
end;
end;
else
ModyfikacjaBazyKodowoSzablonowaRodzica(szablon_rodzica_zmodyfikowany);
ModyfikacjaBazyKodowoSzablonowaDziecka();
end;
else
if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then
local ile;
tekst_rozwiniety_calego_artykulu,ile=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik));
if(ile>0)then
ModyfikacjaBazyKodowoSzablonowaDziecka();
end;
end;
end;
elseif(szablon_rodzica_zmodyfikowany)then
if(poziom_iteracji>0)then
ModyfikacjaBazyKodowoSzablonowaRodzica(szablon_rodzica_zmodyfikowany);
else
tekst_rozwiniety_calego_artykulu=szablon_rodzica_zmodyfikowany;
end;
ModyfikacjaBazyKodowoSzablonowaDziecka();
else
ModyfikacjaBazyKodowoSzablonowaDziecka();
end;
return kod_kodowy_wynik,dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany,szablon_rodzica_zmodyfikowany,obiekt_rodzica_zmodyfikowany,kod_rodzica_zmodyfikowany,__tablica_analizy_obiektow_strony_dany_modul;
end;
if(poziom_iteracji==0)then
ZamienianieKodowe(nil,nil,nil,nil,nil);
else
for i=#tab_poziom_obiekt,1,-1 do
local tab=tab_poziom_obiekt[i];
local poziom_iteracji_rodzica=tab[4];
if(poziom_iteracji_rodzica<poziom_iteracji)then
local szablon_rodzica=tab[1];
local obiekt_rodzica=tab[2];
local kod_rodzica=tab[3];
local szablon_rodzica_zmodyfikowany=tab[5];
local obiekt_rodzica_zmodyfikowany=tab[6];
local kod_rodzica_zmodyfikowany=tab[7];
local kod_kodowy_wynik,dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany,szablon_rodzica_zmodyfikowany,obiekt_rodzica_zmodyfikowany,kod_rodzica_zmodyfikowany,__tablica_analizy_obiektow_strony_dany_modul=ZamienianieKodowe(szablon_rodzica_zmodyfikowany,obiekt_rodzica_zmodyfikowany,kod_rodzica_zmodyfikowany,szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica);
if(szablon_rodzica_zmodyfikowany)then
tab[5]=szablon_rodzica_zmodyfikowany;
tab[6]=obiekt_rodzica_zmodyfikowany;
tab[7]=kod_rodzica_zmodyfikowany;
end;
break;
end;
end;
end;
if(poziom_iteracji_poprz>poziom_iteracji)then
for i=poziom_iteracji_poprz,poziom_iteracji,-1 do
table.remove(tab_poziom_obiekt);
end;
--elseif(poziom_iteracji_poprz<poziom_iteracji)then
elseif(poziom_iteracji_poprz==poziom_iteracji)then
table.remove(tab_poziom_obiekt);
end;
table.insert(tab_poziom_obiekt,{szablon,obiekt,kod,poziom_iteracji,});
poziom_iteracji_poprz=poziom_iteracji;
end;
return tekst_rozwiniety_calego_artykulu;
end;
function p.KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5)
local tablica_szablonow_z_naglowkami=nil;
local tab_sam;
tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul)
if(poziom_iteracji==0)then
tablica_szablonow_z_naglowkami=nil;
tab_sam=nil;
else
if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end;
if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end;
end;
----
local wynik,sam_obiekt,sam_kod=__funkcja(szablon,obiekt,kod,0,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if(wynik)then
if(sam_obiekt and sam_kod)then
return false;
end;
end
local czy_nie_wyzej_sam=false;
local czy_nie_wyzej_poziom=nil;
local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,szablon,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,nil,nil,nil,function(szablon,obiekt,kod)
if((czy_nie_wyzej_sam)or(czy_nie_wyzej_poziom))then
return "";
end;
end);
local poziom_iteracji_poprz=-1;
local tab_poziom_obiekt={}
if(poziom_iteracji==0)then table.insert(tab_poziom_obiekt,{obiekt,kod});end;
for szablon2,obiekt2,kod2,poziom_iteracji2 in iterator do
local wynik,sam_obiekt,sam_kod,czy_inne_ustawienia=__funkcja(szablon2,obiekt2,kod2,poziom_iteracji2+1,false,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if(not wynik)then
if(poziom_iteracji_poprz>poziom_iteracji2)then
for i=poziom_iteracji_poprz,poziom_iteracji2,-1 do
table.remove(tab_poziom_obiekt);
end;
--elseif(poziom_iteracji_poprz<poziom_iteracji2)then
elseif(poziom_iteracji_poprz==poziom_iteracji2)then
table.remove(tab_poziom_obiekt);
end;
table.insert(tab_poziom_obiekt,{obiekt2,kod2});
poziom_iteracji_poprz=poziom_iteracji2;
czy_nie_wyzej_sam=false;
if(czy_inne_ustawienia)then
czy_nie_wyzej_poziom=false;
end;
else
for _,tab in ipairs(tab_poziom_obiekt)do
if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end;
if(not tablica_szablonow_z_naglowkami[tab[1]])then tablica_szablonow_z_naglowkami[tab[1]]={};end;
tablica_szablonow_z_naglowkami[tab[1]][tab[2]]=true;
end;
if(sam_obiekt and sam_kod)then
if(not tab_sam)then tab_sam={};end;
if(not tab_sam[sam_obiekt])then tab_sam[sam_obiekt]={};end;
tab_sam[sam_obiekt][sam_kod]=true;
czy_nie_wyzej_sam=true;
if(czy_inne_ustawienia)then
czy_nie_wyzej_poziom=false;
end;
else
if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end;
if(not tablica_szablonow_z_naglowkami[obiekt2])then tablica_szablonow_z_naglowkami[obiekt2]={};end;
tablica_szablonow_z_naglowkami[obiekt2][kod2]=true;
czy_nie_wyzej_sam=false;
if(czy_inne_ustawienia)then
czy_nie_wyzej_poziom=true;
end;
end;
---poziom_iteracji_poprz=poziom_iteracji2;
end;
end;
if(wynik)then return true;end;
if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end;
if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end;
return nil;
end,__funkcja4,__funkcja5);
return tekst_rozwiniety_calego_artykulu;
end;
function p.KompletowanieSzablonoweZakodowanegoTekstuBezPewnychSzablonowychNormZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3)
local tablica_szablonow_z_naglowkami=nil;
tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul)
local wynik=__funkcja(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if(not wynik)then return nil;end;
return true;
end);
return tekst_rozwiniety_calego_artykulu;
end;
function p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstuBezPewnychSzablonowychNormZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3)
local tablica_szablonow_z_naglowkami=nil;
tekst_rozwiniety_calego_artykulu=p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,
function(szablon,obiekt,kod,poziom_iteracji,_,obiekt_rodzica,kod_rodzica,szablon_rodzica,_,_,poziom_iteracji_rodzica)
return szablon;
end,
funkcja1,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul)
local wynik=__funkcja(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
if(not wynik)then return nil;end;
return true;
end,__funkcja2,funkcja3);
return tekst_rozwiniety_calego_artykulu;
end;
local function FunkcjaPobieraniaTekstuSzablonuStrony(pelna_nazwa_szablonu,nazwa_modulu_aktualna_czy_biezaca_szablonowa,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)
local techniczne_modul=require("Module:Techniczne");
local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,nazwa_modulu_aktualna_czy_biezaca_szablonowa,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
return tekst;
end;
local function FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,czy_niekodowane,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)
if(obiekt=="SZABLON")then
return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if((not tabela_parametrow_szablonu)or(not nazwa_szablonu))then return;end;
if(__FUNKCJA)then
local wynik=__FUNKCJA(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow);
if(wynik)then return;end;
end;
local pelna_nazwa_szablonu=p["PełnaNazwaStronyNazwySzablonu"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod);
if(__FUNKCJA2)then
local wynik=__FUNKCJA2(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow);
if(wynik)then
return;
end;
end;
if((czy_niekodowane)and(__FUNKCJA3))then
local wynik=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow);
if(wynik)then
return wynik;
end;
end;
local parametry_modul=require("Module:Parametry");
local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu);
local tekst;
if((not czy_niekodowane)and(__FUNKCJA3))then
tekst=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow);
if(not tekst)then
tekst=FunkcjaPobieraniaTekstuSzablonuStrony(pelna_nazwa_szablonu,nazwa_modulu_aktualna_czy_biezaca_szablonowa,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
end;
else
tekst=FunkcjaPobieraniaTekstuSzablonuStrony(pelna_nazwa_szablonu,nazwa_modulu_aktualna_czy_biezaca_szablonowa,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
end;
if(not tekst)then return;end;
if((czy_niekodowane)and(not czy_nie_brak_parametrow))then return tekst;end;
local html_modul=require("Module:Html");
tekst=p:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,pelna_nazwa_szablonu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
return;
end,
function(szablon,obiekt,kod,tekst)
if(czy_nie_brak_parametrow)then
if(obiekt=="ZMIENNA")then
local zmienna;local wartosc_domyslna;
zmienna=mw.ustring.match(szablon,"^{{{([^{}|]*)}}}$");
if(not zmienna)then
zmienna,wartosc_domyslna=mw.ustring.match(szablon,"^{{{([^{}|]*)|([^{}]*)}}}$");
end;
zmienna=mw.text.trim(zmienna);
local wartosc_zmiennej=tabela_parametrow_szablonu[tonumber(zmienna) or zmienna];
if(not wartosc_zmiennej)then
if(wartosc_domyslna)then return wartosc_domyslna;end;
local szablon=html_modul["KodyHTMLZnakówWikiCiągu"](szablon);
return szablon;
end;
return wartosc_zmiennej;
end;
end;
end,
function()
return numer_szablonu;
end,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY);
return tekst;
end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,function(nazwa_szablonu,tabela_modyfikatorow)
return __PRZEDFUNKCJA(nazwa_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
end,
function(nazwa_szablonu,tabela_modyfikatorow,rezultat)
return __FUNKCJA0 and __FUNKCJA0(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu;
end,false);
end;
end;
function p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu)
local tablica_modulu_szablonowe=p.TablicaTransportuSzablonowe(self);
tablica_modulu_szablonowe.tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow or {};
local tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow;
----
tablica_szablonow[nazwa_modulu]=tablica_szablonow[nazwa_modulu] or {};
local tablica_danych_parametrow_szablonu_strony=tablica_szablonow[nazwa_modulu];
return tablica_danych_parametrow_szablonu_strony;
end;
function p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
if(not tablica_analizy_obiektow_strony_dany_modul)then
if(not self.tablica_analizy_obiektow_strony_dany_modul)then self.tablica_analizy_obiektow_strony_dany_modul={};end;
if(not self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca])then self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]={};end;
---
tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca];
end;
---
local tablica_danych_parametrow_szablonu_strony=tablica_danych_parametrow_szablonu_strony or p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu_aktualna_czy_biezaca);
return tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony;
end;
function p.RozwijanieNiezakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)
local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
----
local tekst_rozwiniety_calego_artykulu=p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
return;
end,
function(szablon,obiekt,kod,tekst,tablica_analizy_obiektow_strony_dany_modul,numer_szablonu)
----
szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon;
---
return FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,true,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
end,nil,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY);
return tekst_rozwiniety_calego_artykulu;
end;
function p.RozwijanieZakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)
local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
----
local tab_usun;
tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst)
if(obiekt=="SZABLON")then
local numer_szablonu=p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul);
----
szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon;
----
local wynik=FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,false,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
if(wynik)then return wynik;end;
end;
return nil,true;
end);
return tekst_rozwiniety_calego_artykulu,tab_usun;
end;
p["UstalanieNazwyWywołania"]=function(nazwa,czy_ustalanie_szybkie_nazwy,__FUNKCJA,__FUNKCJA2)
local czy_kody_w_nazwa;
if(czy_ustalanie_szybkie_nazwy)then
czy_kody_w_nazwa=mw.ustring.match(nazwa,p.NormaWzoruKodowaniaTekstu());
if(not czy_kody_w_nazwa)then
local czy_jest_dwukropek=mw.ustring.match(nazwa,"[%:%&%%]");
if(not czy_jest_dwukropek)then
return nazwa,nil;
end;
end;
else
czy_kody_w_nazwa=true;
end;
local html_modul=require("Module:Html");
nazwa=html_modul.DecodeHtml(nazwa,true);
local rezultat=nil;
if((__FUNKCJA)and(czy_kody_w_nazwa))then
local nazwa_rozwinieta;
nazwa_rozwinieta,rezultat=__FUNKCJA(nazwa);
nazwa=nazwa_rozwinieta or nazwa;
end;
local nazwa,modyfikatory,tabela_modyfikatorow=p.WydzielanieOpcjiModyfikatorowych(nazwa);
nazwa=((__FUNKCJA2)and(czy_kody_w_nazwa)and(not rezultat)) and (__FUNKCJA2(nazwa,tabela_modyfikatorow) or nazwa) or nazwa;
if(not tabela_modyfikatorow)then
nazwa=html_modul.EncodeId(nazwa);
return nazwa,nil;
end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=mw.ustring.match(nazwa,"^[%s_]*[^:]") and nazwy_modul["NAZWAPRZESTRZENI"](nazwa) or nil;
if(nazwa_przestrzeni)then
if(nazwa_przestrzeni=="")then
if(tabela_modyfikatorow["#invoke:"])then
nazwa="Module:"..nazwa;
elseif(tabela_modyfikatorow["int:"])then
nazwa="MediaWiki:"..nazwa;
end;
else
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((nazwy_np_modul.Module~=nazwa_przestrzeni)and(tabela_modyfikatorow["#invoke:"]))then
nazwa="Module:"..nazwa;
elseif((nazwy_np_modul.MediaWiki~=nazwa_przestrzeni)and(tabela_modyfikatorow["int:"]))then
nazwa="MediaWiki:"..nazwa;
end;
end;
end;
nazwa=html_modul.EncodeId(nazwa);
return nazwa,tabela_modyfikatorow;
end;
p["SzablonowaKompletnaNazwaStrony"]=function(czy_szablon,czy_pelna)
if(not czy_szablon)then return;end;
local nazwy_modul=require("Module:Nazwy");
local parametry_modul=require("Module:Parametry");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local tabela_nazw={};
local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](czy_szablon,tabela_nazw);
local nazwa_szablonu;
if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then
local czy_nie_dwukropek=czy_pelna and mw.ustring.match(czy_szablon,"^%s*[^:]") or nil;
if((czy_nie_dwukropek)or(czy_szablon==""))then
local czy_szablon=parametry_modul["Odstępy"]{nazwa=czy_szablon,["wewnątrz"]="tak",};
nazwa_szablonu=(tabela_nazw.m) and mw.getContentLanguage():ucfirst(czy_szablon) or czy_szablon;
else
nazwa_szablonu=":"..nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw);
end;
elseif(nazwa_przestrzeni_szablonu==nazwy_np_modul.Template)then
nazwa_szablonu=nazwy_modul["NAZWASTRONY"]({nazwa=czy_szablon,},tabela_nazw);
else
nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw);
end;
return nazwa_szablonu;
end;
p["SzablonowaNazwaStrony"]=function(czy_szablon,tablica_danych_parametrow_szablonu_strony,kod)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony;
end;
end;
end;
local nazwa_szablonu=p["SzablonowaKompletnaNazwaStrony"](czy_szablon,true);
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[3])then tablica_danych_parametrow_szablonu_strony[3]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony=nazwa_szablonu;
end;
return nazwa_szablonu;
end;
p["PełnaNazwaStronyNazwySzablonu"]=function(frame,tablica_danych_parametrow_szablonu_strony,kod)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony;
end;
end;
end;
local parametry_modul=require("Module:Parametry");
----
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa_szablonu=PobierzParametr(1) or PobierzParametr("nazwa");
----
if(not nazwa_szablonu)then return;end;
local nazwy_modul=require("Module:Nazwy");
----
local tabela_nazw={};
local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_szablonu,tabela_nazw);
local pelna_nazwa_szablonu;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then
local czy_nie_dwukropek=mw.ustring.match(nazwa_szablonu,"^%s*[^:]");
if(czy_nie_dwukropek)then
local nazwa_szablonu=parametry_modul["Odstępy"]{nazwa=nazwa_szablonu,["wewnątrz"]="tak",};
pelna_nazwa_szablonu=((nazwy_np_modul.Template~="")and (nazwy_np_modul.Template..":") or "")..((tabela_nazw.m)and mw.getContentLanguage():ucfirst(nazwa_szablonu) or nazwa_szablonu);
else
pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw);
end;
else
pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw);
end;
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[5])then tablica_danych_parametrow_szablonu_strony[5]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony=pelna_nazwa_szablonu;
end;
return pelna_nazwa_szablonu;
end;
p["PełnaNazwaStronyWywołańSzablonowych"]=function(nazwa_szablonu,klucz_przestrzeni,klucz_projektu,kod_jezyka,kod_projektu)
if(not nazwa_szablonu)then return;end;
local nazwy_modul=require("Module:Nazwy");
local tabela_nazw={};
local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"]({nazwa=nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw);
local klucz_przestrzeni_niekanoniczna;
local wiki_modul=require("Module:Wiki");
local czy_biezaca;
if(tabela_nazw.czy_aktualna_wiki==nil)then
czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
else
czy_biezaca=tabela_nazw.czy_aktualna_wiki;
end;
if(czy_biezaca)then
klucz_przestrzeni_niekanoniczna=nazwy_modul.Np{nazwa=klucz_przestrzeni,};
else
klucz_przestrzeni_niekanoniczna=nazwy_modul.NpDane{nazwa=klucz_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,};
end;
local pelna_nazwa_szablonu;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then
pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu;
elseif(((klucz_przestrzeni=="MediaWiki")or(klucz_przestrzeni=="Module"))and(nazwa_przestrzeni_szablonu~=klucz_przestrzeni_niekanoniczna))then
pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu;
else
pelna_nazwa_szablonu=nazwa_szablonu;
end;
local tabela_nazw={};
pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"]({nazwa=pelna_nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw);
return pelna_nazwa_szablonu;
end;
p["NazwaSzablonuWywołania"]=function(szablon,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami;
end;
end;
end;
local czy_z_parametrami;
local czy_szablon,zawartosc=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*|([^{}]*)}}$");
if(not czy_szablon or not zawartosc)then
czy_szablon=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*}}$");
if(not czy_szablon)then return;end;
czy_z_parametrami=false;
else
czy_z_parametrami=true;
end;
--czy_szablon=__FUNKCJA and (__FUNKCJA(czy_szablon) or czy_szablon) or czy_szablon;
local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](czy_szablon,true,__FUNKCJA,__FUNKCJA2);
local nazwa_strony=p["SzablonowaNazwaStrony"](czy_szablon);
----
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[4])then tablica_danych_parametrow_szablonu_strony[4]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony=nazwa_strony;
tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=tabela_modyfikatorow;
tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami=czy_z_parametrami;
end;
return nazwa_strony,tabela_modyfikatorow,czy_z_parametrami;
end;
function p.TablicaTransportuSzablonowe(self)
return self;
end;
local function ZbierzParametrSzablonu(tworzona_tabela, kawalek_wywolania,trimuj_numerowane,czy_ramka_lua)
if((not czy_ramka_lua)or(not czy_ramka_lua[1])or((czy_ramka_lua[1])and(czy_ramka_lua[2])))then
local czy_parser=czy_ramka_lua and czy_ramka_lua[3];
local kawalek_wywolania_element_nienazwany=mw.ustring.match(kawalek_wywolania,"^([^|"..((not czy_parser) and ("=") or "").."]-)$");
if(kawalek_wywolania_element_nienazwany)then
----
local __metatablica=getmetatable(tworzona_tabela);
local len=__metatablica.__len(tworzona_tabela);
----
tworzona_tabela[len+1]={((trimuj_numerowane) and (mw.text.trim(kawalek_wywolania_element_nienazwany)) or kawalek_wywolania_element_nienazwany),true,};
return tworzona_tabela;
else
---
local kawalek_wywolania_klucz,kawalek_wywolania_wartosc=mw.ustring.match(kawalek_wywolania,"^%s*([^|=]-)%s*=%s*([^|]-)%s*$");
if((kawalek_wywolania_klucz)and(kawalek_wywolania_wartosc))then
if(not mw.ustring.match(kawalek_wywolania_klucz,"^%s*[%-]?[1-9]%d*%s*$"))then
tworzona_tabela[mw.text.trim(kawalek_wywolania_klucz)]=mw.text.trim(kawalek_wywolania_wartosc);
return tworzona_tabela;
else
tworzona_tabela[tonumber(mw.text.trim(kawalek_wywolania_klucz))]=mw.text.trim(kawalek_wywolania_wartosc);
return tworzona_tabela;
end;
else
return nil;
end;
end;
else
tworzona_tabela[true]=kawalek_wywolania;
czy_ramka_lua[2]=true;
return tworzona_tabela;
end;
return nil;
end;
local function ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu,trimuj_numerowane,czy_ramka_lua)
local kawalek_wywolania,dalszy_kawalek_wywolania=mw.ustring.match(parametry_wywolania_szablonu,"^([^|]*)|(.*)$");
if(not kawalek_wywolania)then
kawalek_wywolania=parametry_wywolania_szablonu;
end;
if(not dalszy_kawalek_wywolania)then
ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania,trimuj_numerowane,czy_ramka_lua);
return parametry_szablonu;
end;
if(kawalek_wywolania)then
ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania,trimuj_numerowane,czy_ramka_lua);
return ParametrySzablonu(dalszy_kawalek_wywolania,parametry_szablonu,trimuj_numerowane,czy_ramka_lua);
end;
return nil;
end;
p["ParsowanieWywołaniaSzablonu"] = function(wywolanie_szablonu,trimuj_numerowane,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod)
local nazwa_parsowania=nil;local modyfikatory_parsowania=nil;
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
if((tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu)and(tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow))then
if(tablica_danych_parametrow_szablonu_strony_numer_kod.parametry)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.parametry,tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow;
end;
nazwa_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu;
modyfikatory_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow;
end;
end;
end;
end;
----
local function NazwaSzablonu(nazwa_szablonu)
if((not nazwa_parsowania)or(not modyfikatory_parsowania))then
local nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna=p["UstalanieNazwyWywołania"](nazwa_szablonu,true,__FUNKCJA,__FUNKCJA2);
nazwa_szablonu_ostateczna=p["SzablonowaNazwaStrony"](nazwa_szablonu_ostateczna);
return nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna;
else
return nazwa_parsowania,modyfikatory_parsowania;
end;
end;
local ParseryTagLua=function(tabela_modyfikatorow)
local czy_lua;
local czy_parser;
if(tabela_modyfikatorow)then
czy_lua=tabela_modyfikatorow["#invoke:"];
if(not czy_lua)then
for name,value in pairs(tabela_modyfikatorow)do
local hash=mw.ustring.sub(name,1,1);
if((hash)and(hash=="#"))then
czy_parser=true;
break;
end;
end;
end;
end;
local czy_ramka_lua={czy_lua,false,czy_parser,};
return czy_ramka_lua;
end;
local wywolanie_bez_parametrow=mw.ustring.match(wywolanie_szablonu,"^{{[^|]-}}$");
if(not wywolanie_bez_parametrow)then
local nazwa_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*|.-}}$");
if(nazwa_szablonu)then
local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu);
local parametry_wywolania_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{[^|]*|(.*)}}$");
----
local szablonowe_metatabelki_modul=require("Module:Szablonowe/Metatabelki");
local function __FUNKCJA()
local __metatablica={};
szablonowe_metatabelki_modul.MetaTabelkaParsowanieSzablonu(__metatablica);
local tabela_parametrow_szablonu={};
setmetatable(tabela_parametrow_szablonu,__metatablica);
----
local czy_ramka_lua=ParseryTagLua(tabela_modyfikatorow);
----
tabela_parametrow_szablonu=ParametrySzablonu(parametry_wywolania_szablonu,tabela_parametrow_szablonu,trimuj_numerowane,czy_ramka_lua);
return tabela_parametrow_szablonu;
end;
local function __FUNKCJA2()
return true;
end;
local __metatablica={};
szablonowe_metatabelki_modul.MetaTabelkaParsowanieObiektowe(__metatablica,{__FUNKCJA,__FUNKCJA2,});
local tabela_parametrow_szablonu={};
setmetatable(tabela_parametrow_szablonu,__metatablica);
----
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1];
tablica_danych_parametrow_szablonu_strony_numer[kod]={};
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu;
tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu;
tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow;
end;
----
return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow;
else return nil;end;
else
local nazwa_szablonu=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*}}$"));
if(nazwa_szablonu)then
local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu);
----
local szablonowe_metatabelki_modul=require("Module:Szablonowe/Metatabelki");
local __metatablica={};
szablonowe_metatabelki_modul.MetaTabelkaParsowanieSzablonu(__metatablica);
local tabela_parametrow_szablonu={};
setmetatable(tabela_parametrow_szablonu,__metatablica);
----
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1];
tablica_danych_parametrow_szablonu_strony_numer[kod]={};
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu;
tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu;
tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow;
end;
----
return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow;
else return nil;end;
end;
end;
function p.WydzielanieOpcjiModyfikatorowych(pole_nazwy)
local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane");
local opis_elementowe_modyfikatory=szablonowe_dane_modul.opis_elementowe_modyfikatory;
local modyfikatory="";
local tab_mod=nil;
if(not mw.ustring.match(pole_nazwy,opis_elementowe_modyfikatory))then
return pole_nazwy,modyfikatory,tab_mod;
end;
----
local tab_modyfikatory=szablonowe_dane_modul.tablica_elementowe_modyfikatory_szablonowe;
----
local function PojedynczeModyfikatory(pole,modyfikatory)
for modyfikator,tab in pairs(tab_modyfikatory) do
local modyfikator_uzyty,pole_dalej=mw.ustring.match(pole,"^("..tab[1]..")(.*)$");
if(modyfikator_uzyty)then
if(not tab_mod)then tab_mod={};end;
if(not tab_mod[modyfikator])then
tab_mod[modyfikator]=true;
end;
modyfikatory=modyfikatory..modyfikator_uzyty;
return PojedynczeModyfikatory(pole_dalej,modyfikatory)
end;
end;
return pole,modyfikatory;
end;
local pole_ostateczne,modyfikatory_ostateczne=PojedynczeModyfikatory(pole_nazwy,modyfikatory);
return pole_ostateczne,modyfikatory_ostateczne,tab_mod;
end;
function p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu)
if(tabela_modyfikatorow)then
if((tabela_modyfikatorow["#if:"])
or(tabela_modyfikatorow["#ifeq:"])
or(tabela_modyfikatorow["#ifexpr:"])
or(tabela_modyfikatorow["#expr:"])
or(tabela_modyfikatorow["#iferror:"])
or(tabela_modyfikatorow["#ifexist:"])
or(tabela_modyfikatorow["#switch:"])
)then
return true;
end;
end;
end;
function p.CzyModyfikatoryCharakterystyczneSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu)
if(tabela_modyfikatorow)then
if((tabela_modyfikatorow["#property:"])
or(tabela_modyfikatorow["#tag:"])
)then
return true;
end;
end;
end;
function p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon;
end;
end;
end;
local function RozpatrywanieSzablonowe()
if(tabela_modyfikatorow)then
if((tabela_modyfikatorow["int:"])
or(tabela_modyfikatorow["#if:"])
or(tabela_modyfikatorow["#ifeq:"])
or(tabela_modyfikatorow["#ifexpr:"])
or(tabela_modyfikatorow["#expr:"])
or(tabela_modyfikatorow["#iferror:"])
or(tabela_modyfikatorow["#ifexist:"])
or(tabela_modyfikatorow["#tag:"])
or(tabela_modyfikatorow["#switch:"])
or(tabela_modyfikatorow["#property:"])
or(tabela_modyfikatorow["#invoke:"])
or(tabela_modyfikatorow["gender:"])
or (tabela_modyfikatorow["ucfirst:"])
or (tabela_modyfikatorow["lcfirst:"])
or (tabela_modyfikatorow["uc:"])
or (tabela_modyfikatorow["lc:"])
)then
return false;
end;
end;
if((nazwa_szablonu)and(nazwa_szablonu~=""))then
local parametry_modul=require("Module:Parametry");
if((parametry_modul.TypeBoolean(tabela_parametrow_szablonu))and(tabela_parametrow_szablonu))then return true;end;
if(tabela_parametrow_szablonu)then
local parametry_modul=require("Module:Parametry");
local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu);
if(czy_nie_brak_parametrow)then return true;end;
end;
return ((not mw.ustring.match(nazwa_szablonu,"^[%s_]*#[%s_]*%a+[%s_]*:")) and true or false);
end;
return true;
end;
local wynik=RozpatrywanieSzablonowe();
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[2])then tablica_danych_parametrow_szablonu_strony[2]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon=wynik;
end;
return wynik;
end;
function p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane)
local parametry_modul=require("Module:Parametry");
local tablica_obiektow_strony_danych_kodow_specjalnych_modul={};
local tab_grupa={};
local math_numer=0;local licznik_linkz=1;
local function TempFuncGrupa(grupa,szablon)
tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1;
----
if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end;
if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end;
----
return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]);
end;
tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul)
if(obiekt=="SZABLON")then
local wynik=p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_szablonowa,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN")or(nazwa_szablonu=="RNota"))then
local grupa="";
return TempFuncGrupa(grupa,szablon);
elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN")or(nazwa_szablonu=="UNota"))then
local grupa="uwaga";
return TempFuncGrupa(grupa,szablon);
elseif((nazwa_szablonu=="O")or(nazwa_szablonu=="Ref"))then
local grupa=tabela_parametrow_szablonu[3] or tabela_parametrow_szablonu["grupa"] or tabela_parametrow_szablonu["g"] or "";
return TempFuncGrupa(grupa,szablon);
elseif(nazwa_szablonu=="Refn")then
local grupa=tabela_parametrow_szablonu["grupa"] or tabela_parametrow_szablonu["g"] or "";
return TempFuncGrupa(grupa,szablon);
end;
end
,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,trimuj_numerowane);
if(wynik)then return wynik;end;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa=="ref")then
tab_atrybuty=tab_atrybuty or {};
local grupa=tab_atrybuty["group"];
grupa=parametry_modul.TypeString(grupa) and grupa or "";
return TempFuncGrupa(grupa,szablon);
end;
elseif(obiekt=="MATH")then
math_numer=math_numer+1;
----
if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"]={};end;
if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer]=szablon;end;
----
return p.NormaKoduKodowaniaTekstu("POSTMATH",math_numer);
end;
return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod);
end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul)
if(obiekt=="LINKZ")then
local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$")
if(url)then
local szablon="["..url.." ["..licznik_linkz.."]]";
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
licznik_linkz=licznik_linkz+1;
return szablon;
end;
end;
return szablon;
end);
return tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul;
end;
function p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane,__FUNKCJA_INNE_OPERACJE,__FUNKCJA_INNE_OPERACJE2,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE)
local parametry_modul=require("Module:parametry");
local tab_grupa={};local licznik_linkz=1;
local tab_usun;
local TempFuncGrupa=function(grupa,szablon)
tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1;
----
return "["..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."]";
end;
tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul)
if(obiekt=="SZABLON")then
return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN")or(nazwa_szablonu=="RNota"))then
local grupa="";
return TempFuncGrupa(grupa,szablon);
elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN")or(nazwa_szablonu=="UNota"))then
local grupa="uwaga";
return TempFuncGrupa(grupa,szablon);
elseif((nazwa_szablonu=="O")or(nazwa_szablonu=="Ref"))then
local grupa=tabela_parametrow_szablonu[3] or tabela_parametrow_szablonu["grupa"] or tabela_parametrow_szablonu["g"] or "";
return TempFuncGrupa(grupa,szablon);
elseif(nazwa_szablonu=="Refn")then
local grupa=tabela_parametrow_szablonu["grupa"] or tabela_parametrow_szablonu["g"] or "";
return TempFuncGrupa(grupa,szablon);
else
if(__FUNKCJA_INNE_OPERACJE)then
return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul);
end;
end;
end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,trimuj_numerowane);
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa=="ref")then
tab_atrybuty=tab_atrybuty or {};
local grupa=tab_atrybuty["group"];
grupa=parametry_modul.TypeString(grupa) and grupa or "";
return TempFuncGrupa(grupa,szablon);
else
if(__FUNKCJA_INNE_OPERACJE)then
return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nazwa,zawartosc,tab_atrybuty,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul);
end;
end;
else
if(__FUNKCJA_INNE_OPERACJE)then
return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nil,nil,nil,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul);
end;
end;
return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod);
end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul)
if(obiekt=="LINKZ")then
local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$")
if(url)then
local szablon="["..url.." ["..licznik_linkz.."]]";
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
licznik_linkz=licznik_linkz+1;
return szablon;
end;
end;
if(__FUNKCJA_INNE_OPERACJE2)then
return __FUNKCJA_INNE_OPERACJE2(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
end;
return szablon;
end,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE);
return tekst_rozwiniety_calego_artykulu,tab_usun;
end;
function p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw)
local adres,nazwa=mw.ustring.match(linkw,"^%[%[([^|]-)|(.-)%]%]$")
if((adres)and(nazwa))then return adres,nazwa;end;
local adres=mw.ustring.match(linkw,"^%[%[([^|]-)%]%]$");
if(adres)then return adres;end;
return nil;
end;
function p.WalidacjaLinkuProjektowego(linkw)
local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw);
if(not adres)then return nil;end;
local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$");
if(spacje_adresu)then return nil;end;
local adres_w_linii=mw.ustring.match(adres,"\n");
if(adres_w_linii)then return nil;end;
local walidacja_adresu=mw.ustring.match(adres,"^[^|]-[%[%]]+[^|]-$");
if(walidacja_adresu)then return nil;end;
if(not nazwa)then return adres,nazwa;end;
local walidacja_nazwy=mw.ustring.match(nazwa,"%[%[") or mw.ustring.match(nazwa,"%]%]");
if(walidacja_nazwy)then return nil;end;
return adres,nazwa;
end;
function p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz)
local adres,nazwa=mw.ustring.match(linkz,"^%[(%S+)%s+(.-)%]$")
if((adres)and(nazwa))then return adres,nazwa;end;
local adres=mw.ustring.match(linkz,"^%[(.-)%]");
return adres;
end;
function p.WalidacjaLinkuNieProjektowego(linkz)
local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz);
if(not adres)then return nil;end;
local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$");
if(spacje_adresu)then return nil;end;
local adres_w_linii=mw.ustring.match(adres,"\n");
if(adres_w_linii)then return nil;end;
local walidacja_adresu=mw.ustring.match(adres,"^%S*[%[%]]%S*$");
if(walidacja_adresu)then return nil;end;
if(not nazwa)then return adres,nazwa;end;
local nazwa_w_linii=mw.ustring.match(nazwa,"\n");
if(nazwa_w_linii)then return nil;end;
local walidacja_nazwy=mw.ustring.match(nazwa,"%]");
if(walidacja_nazwy)then return nil;end;
return adres,nazwa;
end;
function p.OdkodowanieZakodowanychNormKodowychNieschematycznychRzeczy(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul)
local tablica_kodow={};local tak=false;
local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul);
local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane");
local tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki=szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki;
for szablon,obiekt,kod in iterator do
if(tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki[obiekt])then
local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu());
for obiekt,kod in iter do
if(not tablica_kodow[obiekt])then tablica_kodow[obiekt]={};end;
tablica_kodow[obiekt][kod]=true;
tak=true;
end;
end;
end;
--if(not tak)then return tekst_rozwiniety_calego_artykulu;end;
local strony_modul=require("Module:Strony");
local specjalne_modul=require("Module:Specjalne");
--local frame=mw.getCurrentFrame();
tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon2,obiekt2,kod2)
if((tablica_kodow)and(tablica_kodow[obiekt2])and(tablica_kodow[obiekt2][kod2]))then
if(mw.ustring.gmatch(szablon2,p.NormaWzoruKodowaniaTekstu()))then
szablon2=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul);
return szablon2;
end;
elseif(obiekt2=="LINKW")then
if(mw.ustring.match(szablon2,"^%[%[[%s:_]*%]%]$"))then return szablon2;end;
local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul);
if(not specjalne_modul["CzyPlik"](szablon_rozwiniete))then
--szablon_rozwiniete=frame:preprocess(szablon_rozwiniete);
local czy_nie_linkw=not p.WalidacjaLinkuProjektowego(szablon_rozwiniete);
if(czy_nie_linkw)then
return szablon2;
end;
end;
elseif(obiekt2=="LINKZ")then
if(mw.ustring.match(szablon2,"^%[%s*%]$"))then return szablon2;end;
local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul);
--szablon_rozwiniete=frame:preprocess(szablon_rozwiniete);
local adres,nazwa=p.WalidacjaLinkuNieProjektowego(szablon_rozwiniete);
if(adres)then
local czy_linkz=strony_modul.SprawdzanieURL(adres);
if(not czy_linkz)then return szablon2;end;
else
return szablon2;
end;
end;
return nil,true;
end);
return tekst_rozwiniety_calego_artykulu;
end;
p["PokazanieWywołaniaSzablonu"]=function(szablon, args)
local result = {};
table.insert(result, mw.text.nowiki("{{"));
if mw.isSubsting() then
table.insert(result, "subst:");
end;
table.insert(result, szablon);
if args then
for k, v in pairs(args) do
if (type(k)~="number")then
table.insert(result, "|");
table.insert(result, tostring(k));
table.insert(result, "=");
table.insert(result, mw.text.nowiki(v));
else
table.insert(result, "|");
table.insert(result, mw.text.nowiki(v));
end;
end;
end;
table.insert(result, mw.text.nowiki("}}"));
return table.concat(result);
end;
function p.KodSymbolicznySzablonu(nazwa,args,modyfikatory,jako_szablony)
local args=args or {};
local modyfikatory=modyfikatory or {};
----
local __metatablica=getmetatable(args);
local result={};
table.insert(result,((jako_szablony) and "{{((}}" or "{{"));
for name,_ in pairs(modyfikatory)do
table.insert(result,name);
end;
table.insert(result,nazwa);
if(not __metatablica)then
for name,value in pairs(args)do
table.insert(result,((jako_szablony) and "{{!}}" or "|"));
value=mw.ustring.gsub(value,"[=]",((jako_szablony) and "{{=}}" or "="));
table.insert(result,name..((jako_szablony) and "{{=}}" or "=")..value);
end;
else
local tabelka_metatable=__metatablica.PobierzGeneralnaTablica(args);
local tab_inna_tabelka={};
local funkcja;
local juz_jest=nil;
for name,value in pairs(tabelka_metatable)do
if((juz_jest)or(name~=true))then
tab_inna_tabelka[value[2]]={name,value[1],value[3],};
else
funkcja=value;
juz_jest=true;
end;
end;
if(funkcja)then
table.insert(result,((jako_szablony) and "{{!}}" or "|"));
if(jako_szablony)then
funkcja=mw.ustring.gsub(funkcja,"=",function(znak)
return "{{=}}";
end);
end;
table.insert(result,funkcja);
end;
local parametry_modul=require("Module:Parametry");
local __next=parametry_modul.IteratorKluczeTabeliAlfabetycznieSortujDoPrzodu(tab_inna_tabelka,true);
for _,value in __next,tab_inna_tabelka,nil do
table.insert(result,((jako_szablony) and "{{!}}" or "|"));
local value_2;
if(jako_szablony)then value_2=mw.ustring.gsub(value[2],"[=]","{{=}}");else value_2=value[2];end;
table.insert(result,((not value[3])and(value[1]..((jako_szablony) and "{{=}}" or "=")) or "")..value_2);
end;
end;
table.insert(result,((jako_szablony) and "{{))}}" or "}}"));
return table.concat(result,"");
end;
function p.KodSymbolicznySzablonowejRamkiLuaInstrukcjiWarunkowejLubTagu(szablon)
szablon=mw.ustring.gsub(szablon,"^{{(.-)}}$",function(zawartosc)
zawartosc=mw.ustring.gsub(zawartosc,"[|=]",function(znak)
if(znak=="|")then return "{{!}}";else return "{{=}}";end;
end);
return "{((}}"..zawartosc.."{{))}}";
end);
return szablon;
end;
function p.NazwaSzablonu(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr(1) or PobierzParametr("nazwa");
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa);
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np")
if(nazwa_przestrzeni==nazwy_np_modul.Template)then
return nazwy_modul["NAZWASTRONY"](nazwa);
elseif(nazwa_przestrzeni==nazwy_np_modul.Main)then
return ":"..nazwy_modul["PEŁNANAZWASTRONY"](nazwa);
else
return nazwy_modul["PEŁNANAZWASTRONY"](nazwa);
end;
end;
function p.ZnacznikoweTrueFalseSzeregZnakowy(yes)
local yes_male=mw.ustring.lower(yes);
return ((yes_male=="true") and true or ((yes_male~="false")and yes or false));
end;
local function WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,liczba_obiektu)
local liczba_obiektu=liczba_obiektu or 100;
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika;
end;
end;
end
local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne");
if(not tablica_analizy_obiektow_strony_dany_modul)then
tablica_analizy_obiektow_strony_dany_modul={};
znacznik,tablica_analizy_obiektow_strony_dany_modul=szablonowe_potrzebne_modul.KodowanieAtrybutoweZnacznikowe(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
end;
local html_modul=require("Module:Html");
znacznik=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik);
znacznik=mw.ustring.gsub(znacznik,"(</[%a%d]+)(%s+[^<>]*)(>)%s*$","%1%3");
local nazwa,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*>(.-)</(%1)%s*>%s*$");
if((nazwa)and(zawartosc))then
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa;
tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc;
tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil;
end;
return mw.ustring.lower(nazwa),zawartosc,nil;
end;
----
local nazwa=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*/?%s*>%s*$");
if(nazwa)then
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa;
tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil;
tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil;
end;
return mw.ustring.lower(nazwa),nil,nil;
end;
----
local nazwa,atrybuty,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*>(.-)</([%a%d]+)%s*>%s*$");
----
if((not nazwa)or(not atrybuty)or(not zawartosc))then
nazwa,atrybuty=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*/?%s*>%s*$");
if((not nazwa)or(not atrybuty))then
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nil;
tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil;
tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil;
end;
return nil,nil,nil;
end;
end;
-----
local techniczne_modul=require("Module:Techniczne");
local szablonowe_metatabelki_modul=require("Module:Szablonowe/Metatabelki");
local function __FUNKCJA()
local __metatablica={};
szablonowe_metatabelki_modul.MetaTabelkaParsowanieSzablonu(__metatablica);
local tab_atrybuty={};
setmetatable(tab_atrybuty,__metatablica);
----
local tab_atrybuty=szablonowe_potrzebne_modul.AtrybutyZnacznika(atrybuty,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tab_atrybuty);
return tab_atrybuty;
end;
local __metatablica={};
szablonowe_metatabelki_modul.MetaTabelkaParsowanieObiektowe(__metatablica,{__FUNKCJA,});
local tab_atrybuty={};
setmetatable(tab_atrybuty,__metatablica);
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa;
tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc;
tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=tab_atrybuty;
end;
return mw.ustring.lower(nazwa),zawartosc,tab_atrybuty;
end;
function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod)
return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,100);
end;
function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguMath(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod)
return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,101);
end;
function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod)
return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,102);
end;
function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod)
return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,103);
end;
function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod)
return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,104);
end;
function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguGallery(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod)
return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,105);
end;
function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguImageMap(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod)
return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,106);
end;
function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguInputBox(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod)
return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,107);
end;
function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguQuiz(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod)
return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,108);
end;
function p.KodSymbolicznyTagu(nazwa,zawartosc,atrybuty,jako_szablony)
local tab_str={};
table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<");
table.insert(tab_str,nazwa);
if(atrybuty)then
local __metatablica=getmetatable(atrybuty);
if(not __metatablica)then
local parametry_modul=require("Module:Parametry");
for name,value in pairs(atrybuty)do
table.insert(tab_str," ");
table.insert(tab_str,name);
table.insert(tab_str,jako_szablony and "{{=}}","=");
if(parametry_modul.TypeString(value))then
table.insert(tab_str,"\""..value.."\"");
else
table.insert(tab_str,tostring(value));
end;
end;
else
local tabelka_metatable=__metatablica.PobierzGeneralnaTablica(atrybuty);
local tab_inna_tabelka={};
for name,value in pairs(tabelka_metatable)do
tab_inna_tabelka[value[2]]={name,value[1],};
end;
for __name,tab_value in ipairs(tab_inna_tabelka)do
table.insert(tab_str," ");
table.insert(tab_str,tab_value[1]);
table.insert(tab_str,jako_szablony and "{{=}}","=");
if(parametry_modul.TypeString(tab_value[2]))then
table.insert(tab_str,"\""..tab_value[2].."\"");
else
table.insert(tab_str,tostring(tab_value[2]));
end;
end;
end;
end;
table.insert(tab_str,jako_szablony and "{{Większy}}" or ">");
table.insert(tab_str,zawartosc or "");
table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<");
table.insert(tab_str,"/");
table.insert(tab_str,name);
table.insert(tab_str,jako_szablony and "{{Większy}}" or ">");
return table.concat(tab_str,"");
end;
function p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,__FUNKCJA1,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA6,__FUNKCJA7,__FUNKCJA8,__FUNKCJA9,__FUNKCJA_domyslna,__FUNKCJA_begin,__FUNKCJA_parsowania,__FUNKCJA_parametry,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,trimuj_numerowane)
----
local wynik=__FUNKCJA_begin and __FUNKCJA_begin(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) or nil;
if(wynik)then return nil;end;
local tablica_danych_parametrow_szablonu_strony_numer=kod and tablica_danych_parametrow_szablonu_strony and tablica_danych_parametrow_szablonu_strony[1];
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer
and tablica_danych_parametrow_szablonu_strony_numer[kod];
local tab_pop=tablica_danych_parametrow_szablonu_strony_numer_kod
and tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu;
--and tablica_danych_parametrow_szablonu_strony_numer_kod.parametry;
----
local tabela_parametrow_szablonu;local nazwa_szablonu;local tabela_modyfikatorow;
local parametry_modul=require("Module:Parametry");
if((not __FUNKCJA_parsowania) or ((__FUNKCJA_parsowania)and(__FUNKCJA_parsowania(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa))))then
tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod);
else
nazwa_szablonu,tabela_modyfikatorow=p["NazwaSzablonuWywołania"](szablon,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod);
tabela_parametrow_szablonu=(not __FUNKCJA_parametry) and true or __FUNKCJA_parametry(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa);
end;
if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod))then
----
if(__FUNKCJA7 and __FUNKCJA7(nazwa_szablonu) or ((not __FUNKCJA7) and true or false))then
if(__FUNKCJA1 or __FUNKCJA_domyslna)then
local techniczne_modul=require("Module:Techniczne");
if(not tab_pop)then
if((kod)and(tablica_danych_parametrow_szablonu_strony))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-1];
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer
and tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod
and tablica_danych_parametrow_szablonu_strony_numer_kod.adres_strony
)then
tablica_danych_parametrow_szablonu_strony_numer[kod]=nil;
end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3];
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer
and tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod
and tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony
)then
tablica_danych_parametrow_szablonu_strony_numer[kod]=nil;
end;
end;
end;
nazwa_szablonu=pelna_nazwa_spisu_tresci_szablonowa and techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]({[1]=nazwa_szablonu,[2]=pelna_nazwa_spisu_tresci_szablonowa,},tablica_danych_parametrow_szablonu_strony,kod) or nazwa_szablonu;
nazwa_szablonu=p["SzablonowaNazwaStrony"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod);
if(__FUNKCJA1)then
return __FUNKCJA1(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod);
else
return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod);
end;
end;
else
if(__FUNKCJA8)then
return __FUNKCJA8(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod);
elseif(__FUNKCJA_domyslna)then
return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod);
end;
end;
elseif(p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then
if(__FUNKCJA2)then
return __FUNKCJA2(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod);
elseif(__FUNKCJA_domyslna)then
return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod);
end;
elseif(tabela_modyfikatorow)then
if(tabela_modyfikatorow["#invoke:"])then
if(__FUNKCJA3)then
return __FUNKCJA3(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod);
elseif(__FUNKCJA_domyslna)then
return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod);
end;
elseif(tabela_modyfikatorow["#tag:"])then
if(__FUNKCJA4)then
nazwa_szablonu=mw.getContentLanguage():lc(nazwa_szablonu);
return __FUNKCJA4(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod);
elseif(__FUNKCJA_domyslna)then
return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod);
end;
else
local czy_sa_takie_funkcje=(__FUNKCJA5 and __FUNKCJA6) and true or nil;
if(czy_sa_takie_funkcje)then
local function CzyTenSzablonToParser(tabela_modyfikatorow)
for name,value in pairs(tabela_modyfikatorow)do
if(mw.ustring.match(name,"^#%a+:$"))then
return true;
end;
end;
return false;
end;
if(CzyTenSzablonToParser(tabela_modyfikatorow))then
if(__FUNKCJA5)then
return __FUNKCJA5(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod);
elseif(__FUNKCJA_domyslna)then
return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod);
end;
else
if(__FUNKCJA6)then
return __FUNKCJA6(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod);
elseif(__FUNKCJA_domyslna)then
return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod);
end;
end;
elseif(__FUNKCJA_domyslna)then
return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod);
end;
end;
else
if(__FUNKCJA9)then
return __FUNKCJA9(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod);
elseif(__FUNKCJA_domyslna)then
return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod);
end;
end;
end;
p["SprawdzanieCzyWystępujeDanySzablonWTekście"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tekst=PobierzParametr(1) or PobierzParametr("tekst");
local pattern=PobierzParametr(2) or PobierzParametr("wzór");
local szablon=PobierzParametr(3) or PobierzParametr("szablon");
local czy_z_parametrami=PobierzParametr(4) or PobierzParametr("z parametrami");
----
local parametry_modul=require("Module:Parametry");
czy_z_parametrami=((parametry_modul.TypeTable(czy_z_parametrami))
and czy_z_parametrami
or (((not parametry_modul.TypeString(czy_z_parametrami))
and(not parametry_modul.TypeNil(czy_z_parametrami))
and(not parametry_modul.TypeBoolean(czy_z_parametrami)))
and czy_z_parametrami
or (parametry_modul.CzyTak(czy_z_parametrami) and true or false)
)
);
----
szablon=parametry_modul["Odstępy"]{[1]=szablon,[2]="tak",};
szablon=mw.getContentLanguage():ucfirst(szablon);
----
local iter=mw.ustring.gmatch(tekst,pattern);
for nazwa_szablonowa in iter do
local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](nazwa_szablonowa,true);
local nazwa_szablonu=p["SzablonowaNazwaStrony"](czy_szablon);
if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,czy_z_parametrami))then
if(nazwa_szablonu==szablon)then
return "tak";
end;
end;
end;
return nil;
end;
return p;
tnjbb57cxs0djvz1kwltn94jw1uwup7
Moduł:Brudnopis/Persino/test
828
59681
557957
544807
2026-09-29T08:51:39Z
Persino
2851
557957
Scribunto
text/plain
local p={};
local __MetaFunkcja=function(__metatablica)
local tablica={};
__metatablica.__len=function(t)
return #tablica;
end;
__metatablica.__index=function(t,klucz)
mw.log("index");
local tab=tablica[klucz];
if(tab==nil)then return nil;end;
return tab;
end;
__metatablica.__newindex=function(t,klucz,wartosc)
mw.log("newindex");
tablica[klucz]=wartosc;
end;
__metatablica.__pairs=function(t)
return next,tablica,nil;
end;
local function iter(a,i)
i=i+1;
local v = a[i];
if v then
return i, v;
end
end
__metatablica.__ipairs=function(t)
return iter,tablica,0;
end;
end;
function p.TYTAN(frame)
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,frame.args);
return wikikod;
end;
return p;
3v471skd8zsgtx62pgl2gl4xemiv3um
557958
557957
2026-09-29T08:52:07Z
Persino
2851
557958
Scribunto
text/plain
local p={};
local __MetaFunkcja=function(__metatablica)
local tablica={};
__metatablica.__len=function(t)
return #tablica;
end;
__metatablica.__index=function(t,klucz)
mw.log("index");
local tab=tablica[klucz];
if(tab==nil)then return nil;end;
return tab;
end;
__metatablica.__newindex=function(t,klucz,wartosc)
mw.log("newindex");
tablica[klucz]=wartosc;
end;
__metatablica.__pairs=function(t)
return next,tablica,nil;
end;
local function iter(a,i)
i=i+1;
local v = a[i];
if v then
return i, v;
end
end
__metatablica.__ipairs=function(t)
return iter,tablica,0;
end;
end;
function p.TYTAN(frame)
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,frame.args);
return wikikod;
end;
return p;
2ns1c34n8o6rmnceb11okqtew0lsusp
557961
557958
2026-09-29T08:57:06Z
Persino
2851
557961
Scribunto
text/plain
local p={};
local __MetaFunkcja=function(__metatablica)
local tablica={};
__metatablica.__len=function(t)
return #tablica;
end;
__metatablica.__index=function(t,klucz)
mw.log("index");
local tab=tablica[klucz];
if(tab==nil)then return nil;end;
return tab;
end;
__metatablica.__newindex=function(t,klucz,wartosc)
mw.log("newindex");
tablica[klucz]=wartosc;
end;
__metatablica.__pairs=function(t)
return next,tablica,nil;
end;
local function iter(a,i)
i=i+1;
local v = a[i];
if v then
return i, v;
end
end
__metatablica.__ipairs=function(t)
return iter,tablica,0;
end;
end;
function p.TYTAN(frame)
mw.log(frame.args[5]);
--local zrodlolua_modul=require("Module:ŹródłoLua");
--local wikikod=zrodlolua_modul["ŹródłoLua"](frame,frame.args);
--return wikikod;
end;
return p;
eq2mu1ysvegjb03se27sbba5h3xgkeb
557966
557961
2026-09-29T09:12:33Z
Persino
2851
557966
Scribunto
text/plain
local p={};
local __MetaFunkcja=function(__metatablica)
local tablica={};
__metatablica.__len=function(t)
return #tablica;
end;
__metatablica.__index=function(t,klucz)
mw.log("index");
local tab=tablica[klucz];
if(tab==nil)then return nil;end;
return tab;
end;
__metatablica.__newindex=function(t,klucz,wartosc)
mw.log("newindex");
tablica[klucz]=wartosc;
end;
__metatablica.__pairs=function(t)
return next,tablica,nil;
end;
local function iter(a,i)
i=i+1;
local v = a[i];
if v then
return i, v;
end
end
__metatablica.__ipairs=function(t)
return iter,tablica,0;
end;
end;
function p.TYTAN(frame)
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,frame.args);
return wikikod;
end;
return p;
2ns1c34n8o6rmnceb11okqtew0lsusp
557968
557966
2026-09-29T09:16:04Z
Persino
2851
557968
Scribunto
text/plain
local p={};
local __MetaFunkcja=function(__metatablica)
local tablica={};
__metatablica.__len=function(t)
return #tablica;
end;
__metatablica.__index=function(t,klucz)
mw.log("index");
local tab=tablica[klucz];
if(tab==nil)then return nil;end;
return tab;
end;
__metatablica.__newindex=function(t,klucz,wartosc)
mw.log("newindex");
tablica[klucz]=wartosc;
end;
__metatablica.__pairs=function(t)
return next,tablica,nil;
end;
local function iter(a,i)
i=i+1;
local v = a[i];
if v then
return i, v;
end
end
__metatablica.__ipairs=function(t)
return iter,tablica,0;
end;
end;
function p.TYTAN(frame)
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"frame.args",frame.args,},
});
return wikikod;
end;
return p;
jkkb0aljgt6nuzq02tw1frwyyri7bf5
Moduł:Brudnopis/Persino/test/opis
828
59682
557959
530729
2026-09-29T08:53:19Z
Persino
2851
557959
wikitext
text/x-wiki
{{#invoke:Brudnopis/Persino/test |TYTAN|1=tak1|2=tak2|-1=tak3}};
{{#invoke:Brudnopis/Persino/Dymki|UzyskajOpisOdParametrówLinku|2=https://meta.wikimedia.org/wiki/Special:MyLanguage/Universal Code of Conduct/Annual review/2026|wyspecjalizowana=tak}}
[[:w:Warszawa|Warszawa]]
cim4qzmenz35oay329jfu4hr7iwvo7f
557960
557959
2026-09-29T08:54:08Z
Persino
2851
557960
wikitext
text/x-wiki
{{#invoke:Brudnopis/Persino/test |TYTAN|1=tak1|2=tak2|-1=tak3|01=tak4}};
{{#invoke:Brudnopis/Persino/Dymki|UzyskajOpisOdParametrówLinku|2=https://meta.wikimedia.org/wiki/Special:MyLanguage/Universal Code of Conduct/Annual review/2026|wyspecjalizowana=tak}}
[[:w:Warszawa|Warszawa]]
b4n4rd7oqa7lvbwhsxluh8havzazgwf
557962
557960
2026-09-29T08:57:45Z
Persino
2851
557962
wikitext
text/x-wiki
{{#invoke:Brudnopis/Persino/test |TYTAN|1=tak1|2=tak2|-1=tak3|01=tak4|+5=tak5}};
{{#invoke:Brudnopis/Persino/Dymki|UzyskajOpisOdParametrówLinku|2=https://meta.wikimedia.org/wiki/Special:MyLanguage/Universal Code of Conduct/Annual review/2026|wyspecjalizowana=tak}}
[[:w:Warszawa|Warszawa]]
e9aggabbtnu2dru0btyz5pkr6ppb199
557967
557962
2026-09-29T09:13:09Z
Persino
2851
557967
wikitext
text/x-wiki
{{#invoke:Brudnopis/Persino/test |TYTAN|1=tak1|2=tak2|-1=tak3|01=tak4|+5=tak5}};
{{hr}}
{{#invoke:Brudnopis/Persino/Dymki|UzyskajOpisOdParametrówLinku|2=https://meta.wikimedia.org/wiki/Special:MyLanguage/Universal Code of Conduct/Annual review/2026|wyspecjalizowana=tak}}
[[:w:Warszawa|Warszawa]]
m1wlidafi10jhibdd1m3yusk7qsspyc
557969
557967
2026-09-29T09:19:56Z
Persino
2851
557969
wikitext
text/x-wiki
{{#invoke:Brudnopis/Persino/test |TYTAN|1=tak1|2=tak2|-1=tak3|01=tak4|+5=tak5|0=tak6}};
{{hr}}
{{#invoke:Brudnopis/Persino/Dymki|UzyskajOpisOdParametrówLinku|2=https://meta.wikimedia.org/wiki/Special:MyLanguage/Universal Code of Conduct/Annual review/2026|wyspecjalizowana=tak}}
[[:w:Warszawa|Warszawa]]
a42bf4ozmkvsm7pfhhczlvx5uutgkwp
Moduł:Szablonowe/dane
828
60130
557836
557644
2026-09-28T18:35:10Z
Persino
2851
557836
Scribunto
text/plain
local p={};
p.tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji={
["SZABLON"]={
1,--szablonowe_modul["ParsowanieWywołaniaSzablonu"]();
2,--szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe();
3,--szablonowe_modul["SzablonowaNazwaStrony"]();
4,--szablonowe_modul["NazwaSzablonuWywołania"]();
5,--szablonowe_modul["PełnaNazwaStronyNazwySzablonu"]();
0,--stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny();
-1,--techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]
-2,--stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki();
-5,--stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu();
-6,--stronicowyparser_rozdzialy_modul.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu();
-7,--stronicowyparser_potrzebne_modul.NazwaInnegoSzablonowegoLinkowegoObiektu();
-8,--stronicowyparser_potrzebne_modul.NazwaInnegoSzablonowegoLinkowegoSpisuRzeczy
},
["LINKW"]={
-3,--stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki();
},
["LINKZ"]={
-4,--stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki();
},
["ZNACZNIK"]={
100,--szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika();
},
["MATH"]={
101,--szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguMath();
},
["PRE"]={
102,--szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre();
},
["ŹRÓDŁO"]={
103,--szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight();
},
["NOWIKI"]={
104,--szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki();
},
["GALERIA"]={
105,
},
["MAPAOBRAZU"]={
106,
},
["PUDEŁKOWEJŚCIA"]={
107,
},
["QUIZ"]={
108,
},
};
p.tablica_znaczniki_typowo_mechanizmu_mediawiki={
["pre"]="PRE",
["nowiki"]="NOWIKI",
["math"]="MATH",
["source"]="ŹRÓDŁO",
["syntaxhighlight"]="ŹRÓDŁO",
["gallery"]="GALERIA",
["imagemap"]="MAPAOBRAZU",
["inputbox"]="PUDEŁKOWEJŚCIA",
["quiz"]="QUIZ",
["score"]="MUZYKA",
};
p.tablica_podstawowe_elementy_szablonowe_mediawiki={
["SZABLON"]=true,
["LINKW"]=true,
["LINKZ"]=true,
["ZMIENNA"]=true,
["WIKITABELA"]=true,
["INNEPRE"]=true,
["ZNACZNIK"]=true,
["INCLUDE"]=true,
["STARE"]=true,
["ARCHIW"]=true,
};
local m={};
function m.TworzenieTablicyZnacznikowejMechanizmuMediawiki()
local tab={};
for _,obiekt in pairs(p.tablica_znaczniki_typowo_mechanizmu_mediawiki)do
if(not tab[obiekt])then tab[obiekt]=true;end;
end;
return tab;
end;
p.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki=m.TworzenieTablicyZnacznikowejMechanizmuMediawiki();
p.tablica_html_mechanizmu_mediawiki={
["div"]=true,
["span"]=true,
["p"]=true,
["font"]=true,
["code"]=true,
["kbd"]=true,
["sub"]=true,
["sup"]=true,
["bdo"]=true,
["small"]=true,
["big"]=true,
["strong"]=true,
["tt"]=true,
["strike"]=true,
["u"]=true,
["br"]=true,
["hr"]=true,
["dd"]=true,
["dt"]=true,
["b"]=true,
["i"]=true,
["center"]=true,
["table"]=true,
["caption"]=true,
["tbody"]=true,
["tr"]=true,
["td"]=true,
["th"]=true,
["ol"]=true,
["ul"]=true,
["li"]=true,
["em"]=true,
["b"]=true,
["h1"]=true,
["h2"]=true,
["h3"]=true,
["h4"]=true,
["h5"]=true,
["h6"]=true,
["table"]=true,
["tr"]=true,
["td"]=true,
["th"]=true,
["caption"]=true,
};
p.tablica_znacznikowa_preprocesora_szablonowego={
["includeonly"]=true;
["onlyinclude"]=true;
["noinclude"]=true;
}
local m={};
p.tablica_podobne_html={
["ref"]=true;
["references"]=true;
["templatestyles"]=true;
["poem"]=true;
}
m.TablicaZnacznikiMechanizmuMediaWiki=function()
local tablica={};
for name,value in pairs(p.tablica_html_mechanizmu_mediawiki)do
tablica[name]=value;
end;
for name,value in pairs(p.tablica_podobne_html)do
tablica[name]=value;
end;
return tablica;
end;
p.tablica_wiki_znaczniki=m.TablicaZnacznikiMechanizmuMediaWiki();
p.tablica_elementowe_modyfikatory_szablonowe={
["#invoke:"]={"[%s_]*#[%s_]*invoke[%s_]*:[%s_]*","Module",},
["#if:"]={"[%s_]*#[%s_]*if[%s_]*:[%s_]*",nil,},
["#ifeq:"]={"[%s_]*#[%s_]*ifeq[%s_]*:[%s_]*",nil,},
["#iferror:"]={"[%s_]*#[%s_]*iferror[%s_]*:[%s_]*",nil,},
["#ifexpr:"]={"[%s_]*#[%s_]*ifexpr[%s_]*:[%s_]*",nil,},
["#ifexist:"]={"[%s_]*#[%s_]*ifexist[%s_]*:[%s_]*",nil,},
["#expr:"]={"[%s_]*#[%s_]*expr[%s_]*:[%s_]*",nil,},
["#tag:"]={"[%s_]*#[%s_]*tag[%s_]*:[%s_]*",nil,},
["#switch:"]={"[%s_]*#[%s_]*switch[%s_]*:[%s_]*",nil,},
["#property:"]={"[%s_]*#[%s_]*property[%s_]*:[%s_]*",nil,},
["#time:"]={"[%s_]*#[%s_]*time[%s_]*:[%s_]*",nil,},
["int:"]={"[%s_]*int[%s_]*:[%s_]*","MediaWiki",},
["msg:"]={"[%s_]*msg[%s_]*:[%s_]*","Template",},
["msgnw:"]={"[%s_]*msgnw[%s_]*:[%s_]*","Template"},
["raw:"]={"[%s_]*raw[%s_]*:[%s_]*","Template",},
["subst:"]={"[%s_]*subst[%s_]*:[%s_]*",nil,},
["safesubst:"]={"[%s_]*safesubst[%s_]*:[%s_]*",nil,},
["gender:"]={"[%s_]*gender[%s_]*:[%s_]*",nil,},
["ucfirst:"]={"[%s_]*ucfirst[%s_]*:[%s_]*",nil,},
["lcfirst:"]={"[%s_]*lcfirst[%s_]*:[%s_]*",nil,},
["uc:"]={"[%s_]*uc[%s_]*:[%s_]*",nil,},
["lc:"]={"[%s_]*lc[%s_]*:[%s_]*",nil,},
["DEFAULTSORT:"]={"[%s_]*DEFAULTSORT[%s_]*:[%s_]*",nil,},
};
p.opis_elementowe_modyfikatory="^[%s_]*#?[%s_]*%a+[%s_]*:[%s_]*";
return p;
innock7dpsdr8bchkwrbwe508o1bbjj
Moduł:Szablonowe/Potrzebne
828
60145
557813
557807
2026-09-28T14:13:18Z
Persino
2851
557813
Scribunto
text/plain
local p={};
function p.TranslatorProstyTekstDoEncodeWikiTekst(tekst)
local szablonowe_modul=require("Module:Szablonowe");
tekst=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(),function(obiekt,kod)
return szablonowe_modul.NormaKoduZakodowanegoEncodeWikiTekstu(obiekt,kod);
end);
return tekst;
end;
function p.TranslatorOdwrotnyEncodeWikiTekstDoTekst(tekst)
local szablonowe_modul=require("Module:Szablonowe");
tekst=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaEncodeWikiTekstu(),function(obiekt,kod)
return szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod);
end);
return tekst;
end;
function p.AtrybutyZnacznika(atrybuty,nazwa_modulu,tab_element,tab_atrybuty)
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_modul=require("Module:Techniczne");
local html_modul=require("Module:Html");
local tab_specjalne;
if(tab_element)then
atrybuty=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(atrybuty,nazwa_modulu,tab_element,function(szablon,obiekt,kod)
if(obiekt=="UCIECZKI")then
return szablonowe_modul.NormaKoduZakodowanegoEncodeWikiTekstu(obiekt,kod);
end;
return szablon;
end);
else
tab_specjalne={};local ile=1;
atrybuty=mw.ustring.gsub(atrybuty,"(\\[\"'])",function(wyraz_specjalny)
local wyraz=szablonowe_modul.NormaKoduZakodowanegoEncodeWikiTekstu("UCIECZKI",ile);
tab_specjalne[wyraz]=wyraz_specjalny;
ile=ile+1;
return wyraz;
end);
end;
atrybuty=" "..atrybuty.." ";
local tab_atrybuty=tab_atrybuty or {};
local __metatable=getmetatable(tab_atrybuty);
local __tab_atrybuty=__metatable and {} or nil;
local __start=1;
while(true)do
local start,koniec,szablon,name,_,value,_=mw.ustring.match(atrybuty,"(%s+(%a+)%s*=%s*([\"'])(.-)(%3)%s+)",__start);
if((not szablon)or(not name)or(not value))then break;end;
__start=koniec;
local tekst=szablonowe_modul.ZnacznikoweTrueFalseSzeregZnakowy(html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value));
if(__metatable)then
table.insert(__tab_atrybuty,{name,tekst,start,});
else
tab_atrybuty[name]=tekst;
end;
end;
__start=1;
while(true)do
local start,koniec,szablon,name,value=mw.ustring.match(atrybuty,"(%s+(%a+)%s*=%s*([%a%d]+)%s+)",__start);
if((not szablon)or(not name)or(not value))then break;end;
__start=__metatablekoniec;
local tekst=szablonowe_modul.ZnacznikoweTrueFalseSzeregZnakowy(value);
if(__metatable)then
table.insert(__tab_atrybuty,{name,tekst,start,});
else
tab_atrybuty[name]=tekst;
end;
end;
__start=1;
while(true)do
local start,koniec,szablon,name=mw.ustring.match(atrybuty,"(%s+(%a+)%s+)",__start);
if(not name)then break;end;
__start=koniec;
if(__metatable)then
table.insert(__tab_atrybuty,{name,true,start,});
else
tab_atrybuty[name]=tekst;
end;
end;
if(__metatable)then
table.sort(__tab_atrybuty,function(a,b)
return (a[3]<b[3]);
end) ;
for name,tab_value in ipairs(__tab_atrybuty)do
tab_atrybuty[tab_value[1]]=tab_value[2];
end;
end;
local parametry_modul=require("Module:Parametry");
for name,value in pairs(tab_atrybuty) do
if(not parametry_modul.TypeBoolean(value))then
local value;local ile;
if(tab_element)then
value,ile=mw.ustring.gsub(atrybuty,szablonowe_modul.NormaWzoruKodowaniaEncodeWikiTekstu("UCIECZKI"),function(obiekt,kod)
local szablon=(tab_element[obiekt] or {})[kod];
return szablon;
end);
else
value,ile=mw.ustring.gsub(value,"("..szablonowe_modul.NormaWzoruKodowaniaEncodeWikiTekstu("UCIECZKI")..")",function(wyraz)
local wynik=tab_specjalne[wyraz];
return wynik;
end);
end;
if(ile>0)then
tab_atrybuty[name]=value;
end;
end;
end;
return tab_atrybuty;
end;
function p.KodowanieAtrybutoweZnacznikowe(tekst_artykulu,nazwa_modulu,tab_element)
local szablonowe_modul=require("Module:Szablonowe");
local function ROZWAZANIA_SZABLONOWE_ATRYBUTY(szablon,nazwa,czy_tak)
nazwa=nazwa or "ATRYBUTY";
if(not tab_element[nazwa])then tab_element[nazwa]={};end;
tab_element[nazwa][#tab_element[nazwa]+1]=szablon;
local ile=#tab_element[nazwa];
if(not czy_tak)then
local szablon_kod=szablonowe_modul.NormaKoduKodowaniaTekstu(nazwa,ile);
return szablon_kod;
else
local szablon_kod=szablonowe_modul.NormaKoduZakodowanegoEncodeWikiTekstu(nazwa,ile);
return szablon_kod;
end;
end;
local function ZNAKI_UCIECZKI(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(([\\]*)(\\[\"']))",function(szablon,przed,po)
local ile=#przed;
if(math.mod(ile,2)==0)then
szablon=ROZWAZANIA_SZABLONOWE_ATRYBUTY(szablon,"UCIECZKI",true);
return szablon;
end;
return nil;
end);
return tekst_artykulu;
end;
local function ATRYBUTY(szablon1,szablon2,szablon3,cudzyslow)
local _, ile=mw.ustring.gsub(szablon2,"("..cudzyslow..")",function(s)return nil;end);
if(math.mod(ile,2)==0)then
szablon2=ROZWAZANIA_SZABLONOWE_ATRYBUTY(szablon2,nil,true);
return szablon1..szablon2..szablon3,true;
else
szablon2=mw.ustring.gsub(szablon2,"("..cudzyslow..".*"..cudzyslow..")(.-"..cudzyslow.."[^"..cudzyslow.."]*)$",function(__szablon1,__szablon2)
__szablon1=ROZWAZANIA_SZABLONOWE_ATRYBUTY(__szablon1,nil,true);
return __szablon1..__szablon2;
end);
szablon3=ROZWAZANIA_SZABLONOWE_ATRYBUTY(szablon3,"KOŃCOWE",true);
return szablon1..szablon2..szablon3,false;
end;
end;
tekst_artykulu=ZNAKI_UCIECZKI(tekst_artykulu);
local KodowaniaZnakoweAtrybutoweNieucieczkowe=function(tekst_artykulu,wzor)
repeat
local ile_naprawy_znacznikow=nil;
local ile_naprawy_znacznikow_odejmnoc=0;
tekst_artykulu,ile_naprawy_znacznikow=mw.ustring.gsub(tekst_artykulu,wzor,function(szablon1,szablon2,cudzyslow,szablon3)
local szablon,tak=ATRYBUTY(szablon1,szablon2,szablon3,cudzyslow);
if(tak)then ile_naprawy_znacznikow_odejmnoc=ile_naprawy_znacznikow_odejmnoc+1;end;
return szablon;
end);
ile_naprawy_znacznikow=ile_naprawy_znacznikow-ile_naprawy_znacznikow_odejmnoc;
until(ile_naprawy_znacznikow==0);
return tekst_artykulu;
end;
tekst_artykulu=KodowaniaZnakoweAtrybutoweNieucieczkowe(tekst_artykulu,"(</?[%a%d]+%s+)([^<>]-([\"']).-%3[^<>]-)(/?>)");
local PodmienianieSzablonoweEncodeWikiTestuNaTekstu=function(obiekt,kod,ile)
kod=tonumber(kod);
local szablon=(tab_element[obiekt] or {})[kod];
if(not szablon)then return nil;end;
local szablon_kodowy=szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod);
ile=ile+1;
return szablon_kodowy,ile;
end;
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,szablonowe_modul.NormaWzoruKodowaniaEncodeWikiTekstu(),function(obiekt,kod)
if(obiekt~="UCIECZKI")then
local szablon_kodowy,ile=PodmienianieSzablonoweEncodeWikiTestuNaTekstu(obiekt,kod,0);
if(not szablon_kodowy)then return nil;end;
return szablon_kodowy;
end;
return nil;
end);
tekst_artykulu=szablonowe_modul:ModyfikowanieKodowoSzablonoweZakodowanegoTekstu(tekst_artykulu,nazwa_modulu,tab_element,
function(szablon,obiekt,kod,poziom_iteracji,szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica)
local ile=0;
local szablon=mw.ustring.gsub(szablon,szablonowe_modul.NormaWzoruKodowaniaEncodeWikiTekstu(),function(obiekt,kod)
if(obiekt~="UCIECZKI")then
local szablon_kodowy;
szablon_kodowy,ile=PodmienianieSzablonoweEncodeWikiTestuNaTekstu(obiekt,kod,ile);
if(not szablon_kodowy)then return nil;end;
return szablon_kodowy;
end;
return nil;
end);
if(ile==0)then return nil;end;
return true,szablon,obiekt,kod;
end);
tekst_artykulu=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst_artykulu,nazwa_modulu,tab_element,function(szablon,obiekt,kod)
if(obiekt=="KOŃCOWE")then
return szablon;
end;
return nil,true;
end);
return tekst_artykulu,tab_element;
end;
function p.MetaTabelkaSzablonowe(__metatablica)
local tablica={};local __FUNKCJA;
__metatablica.UstawTablica=function(tablica_inna)
return function()
return tablica_inna or tablica;
end;
end;
__metatablica.UstawFunkcjaDaneParametry=function(__FUNKCJA_start,obiekt)
__FUNKCJA=__FUNKCJA_start(obiekt);
end;
local fun_tablica=__metatablica.UstawTablica(tablica);
__metatablica.tablica=function()
return fun_tablica();
end;
__metatablica.__len=function(t)
return #fun_tablica();
end;
__metatablica.__index=function(t,klucz)
local tab=fun_tablica()[klucz];
if(tab==nil)then return nil;end;
return tab[1];
end;
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
local function iter_pairs(tablica,klucz)
klucz=next(tablica,klucz);
local tab = tablica[klucz];
if tab then
return klucz, tab[1];
end
end;
__metatablica.__pairs=function(t)
return iter_pairs,fun_tablica(),nil;
end;
local function iter_ipairs(a,i)
i=i+1;
local v = a[i];
if v then
return i, v;
end
end;
__metatablica.__ipairs=function(t)
return iter_ipairs,fun_tablica(),0;
end;
__metatablica.KopiujMetaTabela=function(value,funkcja,funkcja2)
local tabelka_metatable=__metatablica.tablica();
local __metatablica2={};
p.MetaTabelkaSzablonowe(__metatablica2);
local value2={};
local iteratorFun=function(value)
local klucz=nil;
return function()
klucz=next(value,klucz);
return klucz;
end;
end;
local iterator=iteratorFun(value);
for klucz in iterator do
rawset(value2,klucz,rawget(value,klucz));
end;
setmetatable(value2,__metatablica2);
local tabelka_metatable2=__metatablica2.tablica();
funkcja2(tabelka_metatable,tabelka_metatable2);
funkcja(value2,false);
end;
end;
function p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY)
local numer_szablonu;
local strony_modul=require("Module:Strony");
local szeregi_modul=require("Module:Szeregi");
local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane");
local szablonowe_modul=require("Module:Szablonowe");
local specjalne_modul=require("Module:Specjalne");
local tab_wiki_znacznik=szablonowe_dane_modul.tablica_wiki_znaczniki;
local tablica_znacznikowa_preprocesora_szablonowego=szablonowe_dane_modul.tablica_znacznikowa_preprocesora_szablonowego;
local function InicjujNumeryPoczatkoweObiektowSzablonow()
if(not __FUNKCJA3)then
numer_szablonu={};
for obiekt,_ in pairs(szablonowe_dane_modul.tablica_podstawowe_elementy_szablonowe_mediawiki)do
numer_szablonu[obiekt]=1;
end;
for obiekt,_ in pairs(szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki)do
numer_szablonu[obiekt]=1;
end;
else
numer_szablonu=__FUNKCJA3(tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
end;
end;
local PREWSTAWIAJACA=nil;local NiedokonczoneElementyWikikodu=nil;local czy_wynik=true;
local function ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,co)
if(__FUNKCJA2)then
local wynik=__FUNKCJA2(szablon,co,numer_szablonu[co or "SZABLON"],tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul,numer_szablonu);
if(wynik)then
numer_szablonu[co or "SZABLON"]=numer_szablonu[co or "SZABLON"]+1;
wynik=(czy_wynik and PREWSTAWIAJACA) and PREWSTAWIAJACA(wynik) or wynik;
return wynik,false;
end;
end;
if(__FUNKCJA)then szablon=__FUNKCJA(szablon,co,numer_szablonu[co or "SZABLON"]) or szablon; end;
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu(co,numer_szablonu[co or "SZABLON"]);
---
local tab_co=tablica_analizy_obiektow_strony_dany_modul[co or "SZABLON"];
local __metatablica=getmetatable(tab_co);
local czy_ustawiona_metatabelka=__metatablica and true or false;
if(not __metatablica)then
__metatablica={};
p.MetaTabelkaSzablonowe(__metatablica);
setmetatable(tab_co,__metatablica);
end;
local tablica_co=__metatablica.tablica();
local obiekt=co or "SZABLON";
if((__FUNKCJA_PARAMETRY)and(not czy_ustawiona_metatabelka))then
__metatablica.UstawFunkcjaDaneParametry(__FUNKCJA_PARAMETRY,obiekt);
end;
tablica_co[numer_szablonu[obiekt]]={szablon,false,};
---
numer_szablonu[obiekt]=numer_szablonu[obiekt]+1;
return kod,true;
end;
local function AnalizaObiektowSzablonowegoTekstu(tekst_artykulu)
local ile_znacznik_niedomykajacy_0;local ile_znacznik_niedomykajacy_1;local ile_znacznik_niedomykajacy_2;
local techniczne_modul=require("Module:Techniczne");
local tab_licznik_poczatek={};
local tab_licznik_koniec={};
local tab_element={};
local ObiektFun=function(nazwa)
return szablonowe_dane_modul.tablica_znaczniki_typowo_mechanizmu_mediawiki[nazwa]
or (__FUNCTION_INCLUDE and __FUNCTION_INCLUDE(nazwa) and tablica_znacznikowa_preprocesora_szablonowego[nazwa] and "INCLUDE" or nil)
or (tab_wiki_znacznik[nazwa] and "ZNACZNIK" or nil);
end;
local INCLUDE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[^<>]")
end;
local INNEPRE=function(tekst_artykulu,czy_poczt,czy_szablon)
local function INNEPREROZ(poczatek,koniec)
repeat
local ile;local ile2=0;
tekst_artykulu,ile=mw.ustring.gsub(tekst_artykulu,(poczatek and "\n" or "^").."([^%S\n]+)([^\n]*)"..(koniec and "\n" or "$"),function(spacje,kod)
if((not czy_szablon)or((czy_szablon)and((not mw.ustring.match(kod,"[|=]"))and((koniec)and true or (not mw.ustring.match(kod,"^[^%S\n]*$"))))))then
kod=NiedokonczoneElementyWikikodu(kod);
local szablon=spacje..kod;
return (poczatek and "\n" or "")..ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,"INNEPRE")..(koniec and "\n" or "");
else
ile2=ile2+1;
end;
end);
ile=ile-ile2;
until (ile==0);
end;
if(not czy_poczt)then
INNEPREROZ(false,true);
INNEPREROZ(false,false);
end;
INNEPREROZ(true,true);
INNEPREROZ(true,false);
return tekst_artykulu;
end;
local tab_znaczniki={};
local tab_numerki={};
local function PreprocesorSzablonow(tekst_artykulu)
tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul=p.KodowanieAtrybutoweZnacznikowe(tekst_artykulu,nil,tablica_analizy_obiektow_strony_dany_modul);
local function ZnacznikiWiki(tekst_artykulu,czy_zawsze,czy_inne)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<(/?)([%a%d]+)(%s*)([^<>]-)(%s*)>",function(koniec,nazwa,odstepy_przed,tekst,odstepy_po)
-----
if((odstepy_przed=="")and((tekst~="")and(tekst~="/")))then return;end;
if(koniec=="")then
local nazwa=mw.ustring.lower(nazwa);
table.insert(tab_znaczniki,nazwa);
local koniec_samozamykajacy=mw.ustring.match(tekst,"^(.-)%s*(/?)%s*$");
if(koniec_samozamykajacy=="/")then
tab_licznik_koniec[nazwa]=(tab_licznik_koniec[nazwa] or 0)+1;
end;
tab_licznik_poczatek[nazwa]=(tab_licznik_poczatek[nazwa] or 0)+1;
if(not tab_numerki[nazwa])then tab_numerki[nazwa]={};end;
table.insert(tab_numerki[nazwa],tab_licznik_poczatek[nazwa]);
local licznik=tab_licznik_poczatek[nazwa];
local szablon=nazwa..odstepy_przed..tekst..odstepy_po;
if(not tab_element)then tab_element={};end;
local typ=ObiektFun(nazwa);
if(not typ)then
return "<"..koniec..nazwa..odstepy_przed..tekst..odstepy_po..">";
end;
---
local czy_znacznik=(typ=="ZNACZNIK");
local czy_include=(typ=="INCLUDE");
local jak=(((czy_zawsze)or(czy_inne))and(not czy_znacznik))and ((not czy_include)and "innebegin" or "incbegin") or (((czy_zawsze)or(not czy_inne))and(czy_znacznik)and "begin" or nil);
if(not jak)then return;end;
----
if(not tab_element[nazwa..jak])then tab_element[nazwa..jak]={};end;
tab_element[nazwa..jak][licznik]=szablon;
return "<"..szablonowe_modul.NormaKoduKodowaniaTekstu(nazwa..jak,licznik)..">";
else
local nazwa=mw.ustring.lower(nazwa);
tab_licznik_koniec[nazwa]=(tab_licznik_koniec[nazwa] or 0)+1;
local licznik;
if(#tab_znaczniki>0)then
if(tab_znaczniki[#tab_znaczniki]~=nazwa)then
local koniec=0;
for i=#tab_znaczniki-1,1,-1 do
if(tab_znaczniki[i]==nazwa)then
koniec=i;
break;
end;
end;
if(koniec>0)then
licznik=tab_numerki[nazwa][#tab_numerki[nazwa]];
for i=koniec+1,#tab_znaczniki,1 do
tab_licznik_koniec[tab_znaczniki[i]]=(tab_licznik_koniec[tab_znaczniki[i]] or 0)+1;
end;
for i=koniec,#tab_znaczniki,1 do
table.remove(tab_numerki[tab_znaczniki[i]]);
end;
for i=#tab_znaczniki,koniec,-1 do
table.remove(tab_znaczniki);
end;
else
tab_licznik_poczatek[nazwa]=(tab_licznik_poczatek[nazwa] or 0)+1;
licznik=tab_licznik_poczatek[nazwa];
end;
else
licznik=tab_numerki[nazwa][#tab_numerki[nazwa]];
table.remove(tab_numerki[nazwa]);
table.remove(tab_znaczniki);
end;
else
tab_licznik_poczatek[nazwa]=(tab_licznik_poczatek[nazwa] or 0)+1;
licznik=tab_licznik_koniec[nazwa];
end;
local szablon=nazwa..odstepy_przed..tekst..odstepy_po;
if(not tab_element)then tab_element={};end;
local typ=ObiektFun(nazwa);
if(not typ)then
return "<"..koniec..nazwa..odstepy_przed..tekst..odstepy_po..">";
end;
---
local czy_znacznik=(typ=="ZNACZNIK");
local czy_include=(typ=="INCLUDE");
local jak=(((czy_zawsze)or(czy_inne))and(not czy_znacznik))and ((not czy_include)and "inneend" or "incend") or (((czy_zawsze)or(not czy_inne))and(czy_znacznik)and "end" or nil);
if(not jak)then return;end;
---
if(not tab_element[nazwa..jak])then tab_element[nazwa..jak]={};end;
tab_element[nazwa..jak][licznik]=szablon;
return "</"..szablonowe_modul.NormaKoduKodowaniaTekstu(nazwa..jak,licznik)..">";
end;
end);
return tekst_artykulu;
end;
tekst_artykulu=ZnacznikiWiki(tekst_artykulu,false,true);
local function ZnacznikiWikiLinia(tekst_artykulu,wzor1,wzor2)
tekst_artykulu=szeregi_modul.ZamianaZnakowaLinii(tekst_artykulu,
function(linia)
local a;local b;
a=mw.ustring.match(linia,wzor1);
if(not a)then
a,b=mw.ustring.match(linia,wzor2);
if(not a)then return nil;end;
end;
if(b)then
b=ZnacznikiWiki(b,false,false);
return a..b;
else
a=ZnacznikiWiki(a,false,false);
return a;
end;
end);
return tekst_artykulu;
end;
----
tekst_artykulu=ZnacznikiWikiLinia(tekst_artykulu,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$","^([%*#;:]+)([^\n]+)$");
tekst_artykulu=ZnacznikiWiki(tekst_artykulu,false,false);
----
local function AnalizujDomykajace(tekst_artykulu,jak,co)
local tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<(/?)("..szablonowe_modul.NormaWzoruKodowaniaTekstu("([%a%d]+)"..jak..co,"(%d+)")..")>",function(poczatek,nazwa_przed_nieodkodowane,obiekt,kod)
local nazwa_przed=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,nazwa_przed_nieodkodowane,nil,tab_element);
local nazwa,odstepy,atrybuty,koniec=mw.ustring.match(nazwa_przed,"^([%a%d]+)(%s*)(.-)%s*(/?)%s*$");
nazwa=mw.ustring.lower(nazwa);
if((koniec=="/")or(nazwa=="br")or(nazwa=="hr")or(nazwa=="templatestyles"))then
local szablon="<"..poczatek..nazwa_przed..">";
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,ObiektFun(nazwa));
end;
return nil;
end);
return tekst_artykulu;
end;
tekst_artykulu=AnalizujDomykajace(tekst_artykulu,"inne","begin");
tekst_artykulu=AnalizujDomykajace(tekst_artykulu,"","begin");
tekst_artykulu=AnalizujDomykajace(tekst_artykulu,"inne","end");
tekst_artykulu=AnalizujDomykajace(tekst_artykulu,"","end");
----
return tekst_artykulu;
end;
tekst_artykulu=PreprocesorSzablonow(tekst_artykulu);
local function Kompilacja(tekst_artykulu)
----
local ZamianaLINKWNaLINKZ=function(zawartosc,dalej)
local czy_url=strony_modul.SprawdzanieURL(zawartosc);
if(czy_url)then
local szablon="["..zawartosc.."]";
return "["..ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,"LINKZ").."]"..dalej;
else
if((dalej)and(dalej~=""))then
if(specjalne_modul["CzyAdresLinkuWewnętrznego"]{adres=zawartosc,})then
local szablon;
if(mw.ustring.match(zawartosc,"|"))then
szablon="[["..zawartosc..dalej.."]]";
else
local nazwa=mw.ustring.gsub(zawartosc,"^[%s_]*:[%s_]*","");
szablon="[["..zawartosc.."|"..nazwa..dalej.."]]";
end;
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,"LINKW");
end;
end;
local szablon="[["..zawartosc.."]]";
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,"LINKW")..dalej;
end;
end;
local PracePrzygotowywujace;
NiedokonczoneElementyWikikodu=function(tekst_artykulu,czy_main)
local function DomykajaceIOdtwierajace(tekst_artykulu,jak,tablica_znacznikow)
repeat
local ile_znacznik_niedomykajacy;
local ile_znacznik_niedomykajacy_ujemny=0;
tekst_artykulu,ile_znacznik_niedomykajacy=mw.ustring.gsub(tekst_artykulu,"<("..szablonowe_modul.NormaWzoruKodowaniaTekstu("([%a%d]+)"..jak.."begin","(%d+)")..")>(.*)$",function(nazwa_przed_nieodkodowane,obiekt,kod,zawartosc)
local nazwa_przed=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,nazwa_przed_nieodkodowane,nil,tab_element);
if(tablica_znacznikow)then
if(not tablica_znacznikow[nazwa_przed])then
ile_znacznik_niedomykajacy_ujemny=ile_znacznik_niedomykajacy_ujemny+1;
return nil;
end;
end;
zawartosc=INNEPRE(zawartosc,true);
zawartosc=NiedokonczoneElementyWikikodu(zawartosc);
zawartosc=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,zawartosc,nil,tab_element);
local nazwa,odstepy,atrybuty=mw.ustring.match(nazwa_przed,"^([%a%d]+)(%s*)(.-)%s*$");
local szablon="<"..nazwa_przed..">"..zawartosc..((mw.ustring.match(zawartosc,"\n=[^\n]*[^%s=][^\n]*=[^%S\n]*$")
or mw.ustring.match(zawartosc,"\n[%*#:;][^\n]*$")
) and "\n" or "").."</"..nazwa..">";
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,"ZNACZNIK");
end);
ile_znacznik_niedomykajacy=ile_znacznik_niedomykajacy-ile_znacznik_niedomykajacy_ujemny;
until (ile_znacznik_niedomykajacy==0);
repeat
local ile_znacznik_nieotwierajacy;
local ile_znacznik_nieotwierajacy_ujemny=0;
tekst_artykulu,ile_znacznik_nieotwierajacy=mw.ustring.gsub(tekst_artykulu,"^(.*)</("..szablonowe_modul.NormaWzoruKodowaniaTekstu("([%a%d]+)"..jak.."end","(%d+)")..")>",function(zawartosc,nazwa_po_nieodkodowane,obiekt,kod)
local nazwa_po=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,nazwa_po_nieodkodowane,nil,tab_element);
if(tablica_znacznikow)then
if(not tablica_znacznikow[nazwa_po])then
ile_znacznik_nieotwierajacy_ujemny=ile_znacznik_nieotwierajacy_ujemny+1;
return nil;
end;
end;
zawartosc=INNEPRE(zawartosc);
zawartosc=NiedokonczoneElementyWikikodu(zawartosc);
zawartosc=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,zawartosc,nil,tab_element);
local nazwa,odstepy,atrybuty=mw.ustring.match(nazwa_po,"^([%a%d]+)(%s*)(.-)%s*$");
local szablon="<"..nazwa..">"..((mw.ustring.match(zawartosc,"^=[^\n]*[^%s=][^\n]*=[^%S\n]*\n")
or mw.ustring.match(zawartosc,"^[%*#:;][^\n]*\n")
) and "\n" or "")..zawartosc.."</"..nazwa_po..">";
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,"ZNACZNIK");
end);
ile_znacznik_nieotwierajacy=ile_znacznik_nieotwierajacy-ile_znacznik_nieotwierajacy_ujemny;
until (ile_znacznik_nieotwierajacy==0);
return tekst_artykulu;
end;
if(__FUNCTION_niedokonczone)then
local wynik,gdy_nie,tablica_znacznikow,czy_koniec,__FUNCTION=__FUNCTION_niedokonczone(tekst_artykulu,tab_element);
if(gdy_nie)then
if(czy_koniec)then return wynik or tekst_artykulu;end;
tekst_artykulu=wynik or tekst_artykulu;
tekst_artykulu=__FUNCTION and __FUNCTION(tekst_artykulu) or tekst_artykulu;
tekst_artykulu=tablica_znacznikow and DomykajaceIOdtwierajace(tekst_artykulu,"",tablica_znacznikow) or tekst_artykulu;
return tekst_artykulu;
else
tekst_artykulu=wynik or tekst_artykulu;
end;
end;
local function DomykajaceIOdtwierajaceWikiTabelka(tekst_artykulu)
repeat
local ile_wikitabela_1;
tekst_artykulu,ile_wikitabela_1=szeregi_modul.ZamianaZnakowaSzeregu(tekst_artykulu,"({|)(.-)$",
function(szereg,numer,licznik_wzor,numer_a,numer_b,poczatek,szablon)
return mw.ustring.match(szablon,"\n%{%|"),((licznik_wzor==1)and 2 or 3);
end,
function(licznik_wzor,poczatek,szablon)
szablon=INNEPRE(szablon,true);
szablon=NiedokonczoneElementyWikikodu(szablon);
szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon,nil,tab_element);
return (((czy_main)and(licznik_wzor==1)) and "" or "\n")..ZamienObiektSzablonuKodem(self,poczatek..szablon.."\n|}",tablica_analizy_obiektow_strony_dany_modul,"WIKITABELA");
end,
function(wzor,licznik_wzor,czy)
if(czy_main)then
if(licznik_wzor==1)then return "^"..wzor,true;end;
return "\n"..wzor,false;
else
return "\n"..wzor,false;
end;
end);
until (ile_wikitabela_1==0);
repeat
local ile_wikitabela_2;
tekst_artykulu,ile_wikitabela_2=mw.ustring.gsub(tekst_artykulu,"^(.-)(\n|})",function(szablon,koniec)
szablon=INNEPRE(szablon);
szablon=NiedokonczoneElementyWikikodu(szablon);
szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon,nil,tab_element);
return ZamienObiektSzablonuKodem(self,"\n{|\n"..szablon..koniec,tablica_analizy_obiektow_strony_dany_modul,"WIKITABELA");
end);
until (ile_wikitabela_2==0);
return tekst_artykulu;
end;
local function DomykajaceIOdtwierajaceLinia(tekst_artykulu,wzor_dodatnie,wzor_ujemne)
tekst_artykulu=szeregi_modul.ZamianaZnakowaLinii(tekst_artykulu,function(linia)
local dodatnie=nil;
local a,b,c=mw.ustring.match(linia,wzor_dodatnie);
if((not a)or(not b)or(not c))then
a,b=mw.ustring.match(linia,wzor_ujemne);
if((not a)or(not b))then return nil;end;
c=nil;
else
dodatnie=true;
end;
if(dodatnie)then
b=DomykajaceIOdtwierajace(b,"");
return a..b..c;
else
b=DomykajaceIOdtwierajace(b,"");
return a..b;
end;
end);
return tekst_artykulu;
end;
---
tekst_artykulu=DomykajaceIOdtwierajace(tekst_artykulu,"inne");
-----
local wzor_dodatnie="^(=+[^%S\n]*)([^\n]-[^%s=][^\n]-)([^%S\n]*=+[^%S\n]*)$";
local wzor_ujemne="^([%*#;:]+[^%S\n]*)([^\n]+)$";
tekst_artykulu=DomykajaceIOdtwierajaceLinia(tekst_artykulu,wzor_dodatnie,wzor_ujemne);
-----
---
--tekst_artykulu=DomykajaceIOdtwierajace(tekst_artykulu,"inne");
tekst_artykulu=DomykajaceIOdtwierajace(tekst_artykulu,"");
tekst_artykulu=DomykajaceIOdtwierajaceWikiTabelka(tekst_artykulu);
return tekst_artykulu;
end;
local function ZNACZNIKI(tekst_artykulu,jak)
local ile_odjac_znacznik_niedomykajacy=0;
local tekst_artykulu,ile_znacznik_niedomykajacy=mw.ustring.gsub(tekst_artykulu,"<("..szablonowe_modul.NormaWzoruKodowaniaTekstu("([%a%d]+)"..jak.."begin","(%d+)")..")>(.-)</("..szablonowe_modul.NormaWzoruKodowaniaTekstu("(%2)"..jak.."end","(%3)")..")>",function(nazwa_przed_nieodkodowane,obiekt,kod,zawartosc,nazwa_po_nieodkodowane,obiekt2,kod2)
local nazwa_przed=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,nazwa_przed_nieodkodowane,nil,tab_element);
local nazwa,odstepy,atrybuty=mw.ustring.match(nazwa_przed,"^([%a%d]+)(%s*)(.-)%s*$");
nazwa=mw.ustring.lower(nazwa);
local function TenZnacznik()
local nazwa_po=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,nazwa_po_nieodkodowane,nil,tab_element);
zawartosc=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,zawartosc,nil,tab_element);
if(jak=="")then
zawartosc=INNEPRE(zawartosc,true);
end;
local szablon="<"..nazwa_przed..">"..zawartosc.."</"..nazwa_po..">";
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,ObiektFun(nazwa));
end;
local function InneZnacznik()
ile_odjac_znacznik_niedomykajacy=ile_odjac_znacznik_niedomykajacy+1;
local szablon="<"..nazwa_przed_nieodkodowane..">"..zawartosc.."</"..nazwa_po_nieodkodowane..">";
return szablon;
end;
if(not mw.ustring.match(atrybuty,"^%s*$"))then
if(odstepy~="")then
if((jak~="")and(jak~="inc"))then
return TenZnacznik();
end;
else
return InneZnacznik();
end;
else
if((jak~="")and(jak~="inc"))then
return TenZnacznik();
end;
end;
----
local ile_zastapione;local ile_pominiete;
zawartosc,ile_zastapione,ile_pominiete=ZNACZNIKI(zawartosc,jak);
zawartosc=PracePrzygotowywujace(zawartosc);
zawartosc=INNEPRE(zawartosc,true);
zawartosc=NiedokonczoneElementyWikikodu(zawartosc);
return TenZnacznik();
end);
return tekst_artykulu,ile_znacznik_niedomykajacy,ile_odjac_znacznik_niedomykajacy;
end;
----
PracePrzygotowywujace=function(tekst_artykulu,czy_main)
local ile_linkw;local ile_linkz;local ile_var;local ile_template;local ile_wikitabela;
local function Szablon(zawartosc,przed,po,obiekt,czy_linkw,dalej)
local ile_znacznik_niedomykajacy,ile_odjac_znacznik_niedomykajacy;
zawartosc,ile_znacznik_niedomykajacy,ile_odjac_znacznik_niedomykajacy=ZNACZNIKI(zawartosc,"");
zawartosc=PracePrzygotowywujace(zawartosc);
zawartosc=INNEPRE(zawartosc,true,(obiekt=="SZABLON"));
zawartosc=NiedokonczoneElementyWikikodu(zawartosc);
zawartosc=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,zawartosc,nil,tab_element);
if(czy_linkw)then
return ZamianaLINKWNaLINKZ(zawartosc,dalej);
else
local szablon=przed..zawartosc..po;
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,obiekt);
end;
end;
repeat
repeat
tekst_artykulu,ile_linkw=szeregi_modul.ZamianaZnakowaSzeregu(tekst_artykulu,"%[%[(.-%[?)%]%](%]?)(%l*)",
function(szereg,numer,numer_a,numer_b,szablon,dodatkowe,dalej)
local czy_dalej_kwadratowe=mw.ustring.match(szablon,"^%[");
if(czy_dalej_kwadratowe)then
return czy_dalej_kwadratowe,1;
else
return mw.ustring.match(szablon,"%[%["),2;
end;
end,
function(szablon,dodatkowe,dalej)
if(dodatkowe~="")then
local czy_linkz=mw.ustring.match(szablon,"%[[^%[%]]*$");
if(czy_linkz)then
szablon=szablon..dodatkowe;
return Szablon(szablon,"[[","]]","LINKW",true,dalej);
else
return Szablon(szablon,"[[","]]","LINKW",true,"")..dodatkowe..dalej;
end;
else
return Szablon(szablon,"[[","]]","LINKW",true,dalej);
end;
end);
until (ile_linkw==0);
tekst_artykulu,ile_linkz=szeregi_modul.ZamianaZnakowaSzeregu(tekst_artykulu,"%[(.-)%]",
function(szereg,numer,numer_a,numer_b,szablon)
local czy_dalej_kwadratowe=mw.ustring.match(szablon,"^%[");
if(czy_dalej_kwadratowe)then
return czy_dalej_kwadratowe,1;
else
return mw.ustring.match(szablon,"%["),1;
end;
end,
function(szablon)
return Szablon(szablon,"[","]","LINKZ");
end);
repeat
tekst_artykulu,ile_var=szeregi_modul.ZamianaZnakowaSzeregu(tekst_artykulu,"{{{(.-)}}}",
function(szereg,numer,numer_a,numer_b,szablon)
local czy_dalej_klamerka=mw.usstring.match(szablon,"^%{");
if(czy_dalej_klamerka)then
return czy_dalej_klamerka,1;
else
return mw.ustring.match(szablon,"%{%{%{"),3;
end;
end,
function(szablon)
return Szablon(szablon,"{{{","}}}","ZMIENNA");
end);
until (ile_var==0);
tekst_artykulu,ile_template=szeregi_modul.ZamianaZnakowaSzeregu(tekst_artykulu,"{{(.-)}}",
function(szereg,numer,numer_a,numer_b,szablon)
local czy_dalej_klamerka=mw.ustring.match(szablon,"^%{");
if(czy_dalej_klamerka)then
return czy_dalej_klamerka,1;
else
return mw.ustring.match(szablon,"%{%{"),2;
end;
end,
function(szablon)
return Szablon(szablon,"{{","}}","SZABLON");
end);
tekst_artykulu,ile_wikitabela=szeregi_modul.ZamianaZnakowaSzeregu(tekst_artykulu,"{|(.-)\n|}",
function(szereg,numer,licznik_wzor,numer_a,numer_b,szablon)
return mw.ustring.match(szablon,"\n%{%|"),(czy_main and ((licznik_wzor==1) and 2 or 3) or 3);
end,
function(licznik_wzor,szablon)
if((czy_main)and(licznik_wzor==1))then
return Szablon(szablon,"{|","\n|}","WIKITABELA");
else
return "\n"..Szablon(szablon,"{|","\n|}","WIKITABELA");
end;
end,
function(wzor,numer_begin,czy)
if(czy_main)then
if(numer_begin==1)then return "^"..wzor,true;end;
return "\n"..wzor,false;
else
return "\n"..wzor,false;
end;
end);
until ((ile_linkw==0)and(ile_linkz==0)and(ile_var==0)and(ile_template==0)and(ile_wikitabela==0));
return tekst_artykulu;
end;
----
local ile_odjac_znacznik_niedomykajacy_0;
if(__FUNCTION_INCLUDE)then
tekst_artykulu,ile_znacznik_niedomykajacy_0,ile_odjac_znacznik_niedomykajacy_0=ZNACZNIKI(tekst_artykulu,"inc");
ile_znacznik_niedomykajacy_0=ile_znacznik_niedomykajacy_0-ile_odjac_znacznik_niedomykajacy_0;
----
tekst_artykulu=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul)
if(obiekt=="INCLUDE")then
local nazwa,zawartosc,tab=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
if(__FUNCTION_INCLUDE(nazwa))then
local function inc(zawartosc)
return (mw.ustring.match(tekst_artykulu,"{{{[^{}|]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."%s*}}}")
or mw.ustring.match(tekst_artykulu,"{{.-|.-"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)..".-}}")
)and true or false;
end;
if(nazwa=="noinclude")then
if(poziom_iteracji==0)then
return (not inc(zawartosc)) and "" or zawartosc;
else
return zawartosc;
end;
elseif(nazwa=="includeonly")then
if(poziom_iteracji==0)then
return (not inc(zawartosc)) and zawartosc or "";
else
return "";
end;
end;
end;
end;
return nil,true;
end);
end;
----
local ile_odjac_znacznik_niedomykajacy_1;
tekst_artykulu,ile_znacznik_niedomykajacy_1,ile_odjac_znacznik_niedomykajacy_1=ZNACZNIKI(tekst_artykulu,"inne");
ile_znacznik_niedomykajacy_1=ile_znacznik_niedomykajacy_1-ile_odjac_znacznik_niedomykajacy_1;
----
tekst_artykulu=PracePrzygotowywujace(tekst_artykulu,true);
----
local ile_odjac_znacznik_niedomykajacy_2;
tekst_artykulu,ile_znacznik_niedomykajacy_2,ile_odjac_znacznik_niedomykajacy_2=ZNACZNIKI(tekst_artykulu,"");
return tekst_artykulu;
end;
PREWSTAWIAJACA=function(tekst_artykulu)
czy_wynik=nil;
tekst_artykulu=PreprocesorSzablonow(tekst_artykulu);
tekst_artykulu=Kompilacja(tekst_artykulu);
czy_wynik=true;
return tekst_artykulu;
end;
tekst_artykulu=Kompilacja(tekst_artykulu)
local function PoczatekKoniecTekst(tekst_artykulu)
local tekst_poczatek=(__FUNKCJA_poczatek and __FUNKCJA_poczatek(tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) or nil);
local tekst_koniec=(__FUNKCJA_koniec and __FUNKCJA_koniec(tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) or nil);
if(((tekst_poczatek)and(not mw.ustring.match(tekst_poczatek,"^%s*$")))or((tekst_koniec)and(not mw.ustring.match(tekst_koniec,"^%s*$"))))then
tekst_poczatek=tekst_poczatek and PREWSTAWIAJACA(tekst_poczatek) or tekst_poczatek;
tekst_koniec=tekst_koniec and PREWSTAWIAJACA(tekst_koniec) or tekst_koniec;
tekst_artykulu=(tekst_poczatek or "")..tekst_artykulu..(tekst_koniec or "");
end;
return tekst_artykulu;
end;
tekst_artykulu=PoczatekKoniecTekst(tekst_artykulu);
local function PraceKoncowe(tekst_artykulu)
tekst_artykulu=NiedokonczoneElementyWikikodu(tekst_artykulu,true);
return tekst_artykulu;
end;
tekst_artykulu=PraceKoncowe(tekst_artykulu);
tekst_artykulu=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_artykulu,nil,tab_element);
tekst_artykulu=INNEPRE(tekst_artykulu);
tekst_artykulu=szablonowe_modul.OdkodowanieZakodowanychNormKodowychNieschematycznychRzeczy(self,tekst_artykulu,nil,tablica_analizy_obiektow_strony_dany_modul);
return tekst_artykulu;
end;
local function InicjujTabela()
if(not __FUNKCJA3)then
if(not __FUNKCJA4)then
for obiekt,_ in pairs(szablonowe_dane_modul.tablica_podstawowe_elementy_szablonowe_mediawiki)do
tablica_analizy_obiektow_strony_dany_modul[obiekt]={};
end;
for obiekt,_ in pairs(szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki)do
tablica_analizy_obiektow_strony_dany_modul[obiekt]={};
end;
else
tablica_analizy_obiektow_strony_dany_modul=__FUNKCJA4(tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
end;
else
if(__FUNKCJA4)then
tablica_analizy_obiektow_strony_dany_modul=__FUNKCJA4(tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
end;
end;
end;
local function UstawieniaPoczatkoweObiektowSzablonow()
if(not tablica_analizy_obiektow_strony_dany_modul)then
if((self.tablica_analizy_obiektow_strony_dany_modul)
and(self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu])
)then
tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];
numer_szablonu=self.numer_szablonu;
else
if(not self.tablica_analizy_obiektow_strony_dany_modul)then self.tablica_analizy_obiektow_strony_dany_modul={};end;
if(not self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu])then self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu]={};end;
---
tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];
---
InicjujNumeryPoczatkoweObiektowSzablonow();
self.numer_szablonu=numer_szablonu;
InicjujTabela();
end;
else
InicjujNumeryPoczatkoweObiektowSzablonow();
InicjujTabela();
end;
end;
----
UstawieniaPoczatkoweObiektowSzablonow();
---
local PreProcesorSTARE=function(tekst_artykulu,wzor_kodu,czy_tak)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"("..wzor_kodu..")",function(szablon,obiekt,kod)
if(czy_tak)then
local tablica_szablon_obiekt=tablica_analizy_obiektow_strony_dany_modul and tablica_analizy_obiektow_strony_dany_modul[obiekt] or nil;
local kod=tablica_szablon_obiekt and tonumber(kod) or nil;
if(kod)then
local szablon_wynik=tablica_szablon_obiekt and tablica_szablon_obiekt[kod] or nil;
if(not szablon_wynik)then
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,"STARE");
else
local wynik=__FUNKCJA2(szablon_wynik,obiekt,kod,tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul,numer_szablonu);
return wynik;
end;
else
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,"STARE");
end;
else
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,"STARE");
end;
end);
return tekst_artykulu;
end;
tekst_artykulu=PreProcesorSTARE(tekst_artykulu,szablonowe_modul.NormaWzoruKodowaniaTekstu(),true);
tekst_artykulu=PreProcesorSTARE(tekst_artykulu,szablonowe_modul.NormaWzoruKodowaniaEncodeWikiTekstu(),false);
tekst_artykulu=AnalizaObiektowSzablonowegoTekstu(tekst_artykulu);
return tekst_artykulu;
end;
return p;
ahnkribkf7nsglkiiv5b3d5y437auhx
557814
557813
2026-09-28T14:28:26Z
Persino
2851
557814
Scribunto
text/plain
local p={};
function p.TranslatorProstyTekstDoEncodeWikiTekst(tekst)
local szablonowe_modul=require("Module:Szablonowe");
tekst=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(),function(obiekt,kod)
return szablonowe_modul.NormaKoduZakodowanegoEncodeWikiTekstu(obiekt,kod);
end);
return tekst;
end;
function p.TranslatorOdwrotnyEncodeWikiTekstDoTekst(tekst)
local szablonowe_modul=require("Module:Szablonowe");
tekst=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaEncodeWikiTekstu(),function(obiekt,kod)
return szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod);
end);
return tekst;
end;
function p.AtrybutyZnacznika(atrybuty,nazwa_modulu,tab_element,tab_atrybuty)
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_modul=require("Module:Techniczne");
local html_modul=require("Module:Html");
local tab_specjalne;
if(tab_element)then
atrybuty=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(atrybuty,nazwa_modulu,tab_element,function(szablon,obiekt,kod)
if(obiekt=="UCIECZKI")then
return szablonowe_modul.NormaKoduZakodowanegoEncodeWikiTekstu(obiekt,kod);
end;
return szablon;
end);
else
tab_specjalne={};local ile=1;
atrybuty=mw.ustring.gsub(atrybuty,"(\\[\"'])",function(wyraz_specjalny)
local wyraz=szablonowe_modul.NormaKoduZakodowanegoEncodeWikiTekstu("UCIECZKI",ile);
tab_specjalne[wyraz]=wyraz_specjalny;
ile=ile+1;
return wyraz;
end);
end;
atrybuty=" "..atrybuty.." ";
local tab_atrybuty=tab_atrybuty or {};
local __metatable=getmetatable(tab_atrybuty);
local __tab_atrybuty=__metatable and {} or nil;
local __start=1;
while(true)do
local start,koniec,szablon,name,_,value,_=mw.ustring.match(atrybuty,"(%s+(%a+)%s*=%s*([\"'])(.-)(%3)%s+)",__start);
if((not szablon)or(not name)or(not value))then break;end;
__start=koniec;
local tekst=szablonowe_modul.ZnacznikoweTrueFalseSzeregZnakowy(html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value));
if(__metatable)then
table.insert(__tab_atrybuty,{name,tekst,start,});
else
tab_atrybuty[name]=tekst;
end;
end;
__start=1;
while(true)do
local start,koniec,szablon,name,value=mw.ustring.match(atrybuty,"(%s+(%a+)%s*=%s*([%a%d]+)%s+)",__start);
if((not szablon)or(not name)or(not value))then break;end;
__start=__metatablekoniec;
local tekst=szablonowe_modul.ZnacznikoweTrueFalseSzeregZnakowy(value);
if(__metatable)then
table.insert(__tab_atrybuty,{name,tekst,start,});
else
tab_atrybuty[name]=tekst;
end;
end;
__start=1;
while(true)do
local start,koniec,szablon,name=mw.ustring.match(atrybuty,"(%s+(%a+)%s+)",__start);
if(not name)then break;end;
__start=koniec;
if(__metatable)then
table.insert(__tab_atrybuty,{name,true,start,});
else
tab_atrybuty[name]=tekst;
end;
end;
if(__metatable)then
table.sort(__tab_atrybuty,function(a,b)
return (a[3]<b[3]);
end) ;
for name,tab_value in ipairs(__tab_atrybuty)do
tab_atrybuty[tab_value[1]]=tab_value[2];
end;
end;
local parametry_modul=require("Module:Parametry");
for name,value in pairs(tab_atrybuty) do
if(not parametry_modul.TypeBoolean(value))then
local value;local ile;
if(tab_element)then
value,ile=mw.ustring.gsub(atrybuty,szablonowe_modul.NormaWzoruKodowaniaEncodeWikiTekstu("UCIECZKI"),function(obiekt,kod)
local szablon=(tab_element[obiekt] or {})[kod];
return szablon;
end);
else
value,ile=mw.ustring.gsub(value,"("..szablonowe_modul.NormaWzoruKodowaniaEncodeWikiTekstu("UCIECZKI")..")",function(wyraz)
local wynik=tab_specjalne[wyraz];
return wynik;
end);
end;
if(ile>0)then
tab_atrybuty[name]=value;
end;
end;
end;
return tab_atrybuty;
end;
function p.KodowanieAtrybutoweZnacznikowe(tekst_artykulu,nazwa_modulu,tab_element)
local szablonowe_modul=require("Module:Szablonowe");
local function ROZWAZANIA_SZABLONOWE_ATRYBUTY(szablon,nazwa,czy_tak)
nazwa=nazwa or "ATRYBUTY";
if(not tab_element[nazwa])then tab_element[nazwa]={};end;
tab_element[nazwa][#tab_element[nazwa]+1]=szablon;
local ile=#tab_element[nazwa];
if(not czy_tak)then
local szablon_kod=szablonowe_modul.NormaKoduKodowaniaTekstu(nazwa,ile);
return szablon_kod;
else
local szablon_kod=szablonowe_modul.NormaKoduZakodowanegoEncodeWikiTekstu(nazwa,ile);
return szablon_kod;
end;
end;
local function ZNAKI_UCIECZKI(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(([\\]*)(\\[\"']))",function(szablon,przed,po)
local ile=#przed;
if(math.mod(ile,2)==0)then
szablon=ROZWAZANIA_SZABLONOWE_ATRYBUTY(szablon,"UCIECZKI",true);
return szablon;
end;
return nil;
end);
return tekst_artykulu;
end;
local function ATRYBUTY(szablon1,szablon2,szablon3,cudzyslow)
local _, ile=mw.ustring.gsub(szablon2,"("..cudzyslow..")",function(s)return nil;end);
if(math.mod(ile,2)==0)then
szablon2=ROZWAZANIA_SZABLONOWE_ATRYBUTY(szablon2,nil,true);
return szablon1..szablon2..szablon3,true;
else
szablon2=mw.ustring.gsub(szablon2,"("..cudzyslow..".*"..cudzyslow..")(.-"..cudzyslow.."[^"..cudzyslow.."]*)$",function(__szablon1,__szablon2)
__szablon1=ROZWAZANIA_SZABLONOWE_ATRYBUTY(__szablon1,nil,true);
return __szablon1..__szablon2;
end);
szablon3=ROZWAZANIA_SZABLONOWE_ATRYBUTY(szablon3,"KOŃCOWE",true);
return szablon1..szablon2..szablon3,false;
end;
end;
tekst_artykulu=ZNAKI_UCIECZKI(tekst_artykulu);
local KodowaniaZnakoweAtrybutoweNieucieczkowe=function(tekst_artykulu,wzor)
repeat
local ile_naprawy_znacznikow=nil;
local ile_naprawy_znacznikow_odejmnoc=0;
tekst_artykulu,ile_naprawy_znacznikow=mw.ustring.gsub(tekst_artykulu,wzor,function(szablon1,szablon2,cudzyslow,szablon3)
local szablon,tak=ATRYBUTY(szablon1,szablon2,szablon3,cudzyslow);
if(tak)then ile_naprawy_znacznikow_odejmnoc=ile_naprawy_znacznikow_odejmnoc+1;end;
return szablon;
end);
ile_naprawy_znacznikow=ile_naprawy_znacznikow-ile_naprawy_znacznikow_odejmnoc;
until(ile_naprawy_znacznikow==0);
return tekst_artykulu;
end;
tekst_artykulu=KodowaniaZnakoweAtrybutoweNieucieczkowe(tekst_artykulu,"(</?[%a%d]+%s+)([^<>]-([\"']).-%3[^<>]-)(/?>)");
local PodmienianieSzablonoweEncodeWikiTestuNaTekstu=function(obiekt,kod,ile)
kod=tonumber(kod);
local szablon=(tab_element[obiekt] or {})[kod];
if(not szablon)then return nil;end;
local szablon_kodowy=szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod);
ile=ile+1;
return szablon_kodowy,ile;
end;
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,szablonowe_modul.NormaWzoruKodowaniaEncodeWikiTekstu(),function(obiekt,kod)
if(obiekt~="UCIECZKI")then
local szablon_kodowy,ile=PodmienianieSzablonoweEncodeWikiTestuNaTekstu(obiekt,kod,0);
if(not szablon_kodowy)then return nil;end;
return szablon_kodowy;
end;
return nil;
end);
tekst_artykulu=szablonowe_modul:ModyfikowanieKodowoSzablonoweZakodowanegoTekstu(tekst_artykulu,nazwa_modulu,tab_element,
function(szablon,obiekt,kod,poziom_iteracji,szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica)
local ile=0;
local szablon=mw.ustring.gsub(szablon,szablonowe_modul.NormaWzoruKodowaniaEncodeWikiTekstu(),function(obiekt,kod)
if(obiekt~="UCIECZKI")then
local szablon_kodowy;
szablon_kodowy,ile=PodmienianieSzablonoweEncodeWikiTestuNaTekstu(obiekt,kod,ile);
if(not szablon_kodowy)then return nil;end;
return szablon_kodowy;
end;
return nil;
end);
if(ile==0)then return nil;end;
return true,szablon,obiekt,kod;
end);
tekst_artykulu=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst_artykulu,nazwa_modulu,tab_element,function(szablon,obiekt,kod)
if(obiekt=="KOŃCOWE")then
return szablon;
end;
return nil,true;
end);
return tekst_artykulu,tab_element;
end;
function p.MetaTabelkaSzablonowe(__metatablica)
local tablica={};local __FUNKCJA;
__metatablica.UstawTablica=function(tablica_inna)
return function()
return tablica_inna or tablica;
end;
end;
__metatablica.UstawFunkcjaDaneParametry=function(__FUNKCJA_start,obiekt)
__FUNKCJA=__FUNKCJA_start(obiekt);
end;
local fun_tablica=__metatablica.UstawTablica(tablica);
__metatablica.tablica=function()
return fun_tablica();
end;
__metatablica.__len=function(t)
return #fun_tablica();
end;
__metatablica.__index=function(t,klucz)
local tab=fun_tablica()[klucz];
if(tab==nil)then return nil;end;
return tab[1];
end;
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
local function iter_pairs(tablica,klucz)
klucz=next(tablica,klucz);
local tab = tablica[klucz];
if tab then
return klucz, tab[1];
end
end;
__metatablica.__pairs=function(t)
return iter_pairs,fun_tablica(),nil;
end;
local function iter_ipairs(a,i)
i=i+1;
local v = a[i];
if v then
return i, v;
end
end;
__metatablica.__ipairs=function(t)
return iter_ipairs,fun_tablica(),0;
end;
__metatablica.KopiujMetaTabela=function(value,funkcja,funkcja2)
local tabelka_metatable=__metatablica.tablica();
local __metatablica2={};
p.MetaTabelkaSzablonowe(__metatablica2);
local value2={};
local iteratorFun=function(value)
local klucz=nil;
return function()
klucz=next(value,klucz);
return klucz;
end;
end;
local iterator=iteratorFun(value);
for klucz in iterator do
rawset(value2,klucz,rawget(value,klucz));
end;
setmetatable(value2,__metatablica2);
local tabelka_metatable2=__metatablica2.tablica();
funkcja2(tabelka_metatable,tabelka_metatable2);
funkcja(value2,false);
end;
end;
function p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY)
local numer_szablonu;
local strony_modul=require("Module:Strony");
local szeregi_modul=require("Module:Szeregi");
local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane");
local szablonowe_modul=require("Module:Szablonowe");
local specjalne_modul=require("Module:Specjalne");
local tab_wiki_znacznik=szablonowe_dane_modul.tablica_wiki_znaczniki;
local tablica_znacznikowa_preprocesora_szablonowego=szablonowe_dane_modul.tablica_znacznikowa_preprocesora_szablonowego;
local function InicjujNumeryPoczatkoweObiektowSzablonow()
if(not __FUNKCJA3)then
numer_szablonu={};
for obiekt,_ in pairs(szablonowe_dane_modul.tablica_podstawowe_elementy_szablonowe_mediawiki)do
numer_szablonu[obiekt]=1;
end;
for obiekt,_ in pairs(szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki)do
numer_szablonu[obiekt]=1;
end;
else
numer_szablonu=__FUNKCJA3(tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
end;
end;
local PREWSTAWIAJACA=nil;local NiedokonczoneElementyWikikodu=nil;local czy_wynik=true;
local function ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,co)
if(__FUNKCJA2)then
local wynik=__FUNKCJA2(szablon,co,numer_szablonu[co or "SZABLON"],tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul,numer_szablonu);
if(wynik)then
numer_szablonu[co or "SZABLON"]=numer_szablonu[co or "SZABLON"]+1;
wynik=(czy_wynik and PREWSTAWIAJACA) and PREWSTAWIAJACA(wynik) or wynik;
return wynik,false;
end;
end;
if(__FUNKCJA)then szablon=__FUNKCJA(szablon,co,numer_szablonu[co or "SZABLON"]) or szablon; end;
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu(co,numer_szablonu[co or "SZABLON"]);
---
local tab_co=tablica_analizy_obiektow_strony_dany_modul[co or "SZABLON"];
local __metatablica=getmetatable(tab_co);
local czy_ustawiona_metatabelka=__metatablica and true or false;
if(not __metatablica)then
__metatablica={};
p.MetaTabelkaSzablonowe(__metatablica);
setmetatable(tab_co,__metatablica);
end;
local tablica_co=__metatablica.tablica();
local obiekt=co or "SZABLON";
if((__FUNKCJA_PARAMETRY)and(not czy_ustawiona_metatabelka))then
__metatablica.UstawFunkcjaDaneParametry(__FUNKCJA_PARAMETRY,obiekt);
end;
tablica_co[numer_szablonu[obiekt]]={szablon,false,};
---
numer_szablonu[obiekt]=numer_szablonu[obiekt]+1;
return kod,true;
end;
local function AnalizaObiektowSzablonowegoTekstu(tekst_artykulu)
local ile_znacznik_niedomykajacy_0;local ile_znacznik_niedomykajacy_1;local ile_znacznik_niedomykajacy_2;
local techniczne_modul=require("Module:Techniczne");
local tab_licznik_poczatek={};
local tab_licznik_koniec={};
local tab_element={};
local ObiektFun=function(nazwa)
return szablonowe_dane_modul.tablica_znaczniki_typowo_mechanizmu_mediawiki[nazwa]
or (__FUNCTION_INCLUDE and __FUNCTION_INCLUDE(nazwa) and tablica_znacznikowa_preprocesora_szablonowego[nazwa] and "INCLUDE" or nil)
or (tab_wiki_znacznik[nazwa] and "ZNACZNIK" or nil);
end;
local INCLUDE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[^<>]")
end;
local INNEPRE=function(tekst_artykulu,czy_poczt,czy_szablon)
local function INNEPREROZ(poczatek,koniec)
repeat
local ile;local ile2=0;
tekst_artykulu,ile=mw.ustring.gsub(tekst_artykulu,(poczatek and "\n" or "^").."([^%S\n]+)([^\n]*)"..(koniec and "\n" or "$"),function(spacje,kod)
if((not czy_szablon)or((czy_szablon)and((not mw.ustring.match(kod,"[|=]"))and((koniec)and true or (not mw.ustring.match(kod,"^[^%S\n]*$"))))))then
kod=NiedokonczoneElementyWikikodu(kod);
local szablon=spacje..kod;
return (poczatek and "\n" or "")..ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,"INNEPRE")..(koniec and "\n" or "");
else
ile2=ile2+1;
end;
end);
ile=ile-ile2;
until (ile==0);
end;
if(not czy_poczt)then
INNEPREROZ(false,true);
INNEPREROZ(false,false);
end;
INNEPREROZ(true,true);
INNEPREROZ(true,false);
return tekst_artykulu;
end;
local tab_znaczniki={};
local tab_numerki={};
local function PreprocesorSzablonow(tekst_artykulu)
tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul=p.KodowanieAtrybutoweZnacznikowe(tekst_artykulu,nil,tablica_analizy_obiektow_strony_dany_modul);
local function ZnacznikiWiki(tekst_artykulu,czy_zawsze,czy_inne)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<(/?)([%a%d]+)(%s*)([^<>]-)(%s*)>",function(koniec,nazwa,odstepy_przed,tekst,odstepy_po)
-----
if((odstepy_przed=="")and((tekst~="")and(tekst~="/")))then return;end;
if(koniec=="")then
local nazwa=mw.ustring.lower(nazwa);
table.insert(tab_znaczniki,nazwa);
local koniec_samozamykajacy=mw.ustring.match(tekst,"^(.-)%s*(/?)%s*$");
if(koniec_samozamykajacy=="/")then
tab_licznik_koniec[nazwa]=(tab_licznik_koniec[nazwa] or 0)+1;
end;
tab_licznik_poczatek[nazwa]=(tab_licznik_poczatek[nazwa] or 0)+1;
if(not tab_numerki[nazwa])then tab_numerki[nazwa]={};end;
table.insert(tab_numerki[nazwa],tab_licznik_poczatek[nazwa]);
local licznik=tab_licznik_poczatek[nazwa];
local szablon=nazwa..odstepy_przed..tekst..odstepy_po;
if(not tab_element)then tab_element={};end;
local typ=ObiektFun(nazwa);
if(not typ)then
return "<"..koniec..nazwa..odstepy_przed..tekst..odstepy_po..">";
end;
---
local czy_znacznik=(typ=="ZNACZNIK");
local czy_include=(typ=="INCLUDE");
local jak=(((czy_zawsze)or(czy_inne))and(not czy_znacznik))and ((not czy_include)and "innebegin" or "incbegin") or (((czy_zawsze)or(not czy_inne))and(czy_znacznik)and "begin" or nil);
if(not jak)then return;end;
----
if(not tab_element[nazwa..jak])then tab_element[nazwa..jak]={};end;
tab_element[nazwa..jak][licznik]=szablon;
return "<"..szablonowe_modul.NormaKoduKodowaniaTekstu(nazwa..jak,licznik)..">";
else
local nazwa=mw.ustring.lower(nazwa);
tab_licznik_koniec[nazwa]=(tab_licznik_koniec[nazwa] or 0)+1;
local licznik;
if(#tab_znaczniki>0)then
if(tab_znaczniki[#tab_znaczniki]~=nazwa)then
local koniec=0;
for i=#tab_znaczniki-1,1,-1 do
if(tab_znaczniki[i]==nazwa)then
koniec=i;
break;
end;
end;
if(koniec>0)then
licznik=tab_numerki[nazwa][#tab_numerki[nazwa]];
for i=koniec+1,#tab_znaczniki,1 do
tab_licznik_koniec[tab_znaczniki[i]]=(tab_licznik_koniec[tab_znaczniki[i]] or 0)+1;
end;
for i=koniec,#tab_znaczniki,1 do
table.remove(tab_numerki[tab_znaczniki[i]]);
end;
for i=#tab_znaczniki,koniec,-1 do
table.remove(tab_znaczniki);
end;
else
tab_licznik_poczatek[nazwa]=(tab_licznik_poczatek[nazwa] or 0)+1;
licznik=tab_licznik_poczatek[nazwa];
end;
else
licznik=tab_numerki[nazwa][#tab_numerki[nazwa]];
table.remove(tab_numerki[nazwa]);
table.remove(tab_znaczniki);
end;
else
tab_licznik_poczatek[nazwa]=(tab_licznik_poczatek[nazwa] or 0)+1;
licznik=tab_licznik_koniec[nazwa];
end;
local szablon=nazwa..odstepy_przed..tekst..odstepy_po;
if(not tab_element)then tab_element={};end;
local typ=ObiektFun(nazwa);
if(not typ)then
return "<"..koniec..nazwa..odstepy_przed..tekst..odstepy_po..">";
end;
---
local czy_znacznik=(typ=="ZNACZNIK");
local czy_include=(typ=="INCLUDE");
local jak=(((czy_zawsze)or(czy_inne))and(not czy_znacznik))and ((not czy_include)and "inneend" or "incend") or (((czy_zawsze)or(not czy_inne))and(czy_znacznik)and "end" or nil);
if(not jak)then return;end;
---
if(not tab_element[nazwa..jak])then tab_element[nazwa..jak]={};end;
tab_element[nazwa..jak][licznik]=szablon;
return "</"..szablonowe_modul.NormaKoduKodowaniaTekstu(nazwa..jak,licznik)..">";
end;
end);
return tekst_artykulu;
end;
tekst_artykulu=ZnacznikiWiki(tekst_artykulu,false,true);
local function ZnacznikiWikiLinia(tekst_artykulu,wzor1,wzor2)
tekst_artykulu=szeregi_modul.ZamianaZnakowaLinii(tekst_artykulu,
function(linia)
local a;local b;
a=mw.ustring.match(linia,wzor1);
if(not a)then
a,b=mw.ustring.match(linia,wzor2);
if(not a)then return nil;end;
end;
if(b)then
b=ZnacznikiWiki(b,false,false);
return a..b;
else
a=ZnacznikiWiki(a,false,false);
return a;
end;
end);
return tekst_artykulu;
end;
----
tekst_artykulu=ZnacznikiWikiLinia(tekst_artykulu,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$","^([%*#;:]+)([^\n]+)$");
tekst_artykulu=ZnacznikiWiki(tekst_artykulu,false,false);
----
local function AnalizujDomykajace(tekst_artykulu,jak,co)
local tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<(/?)("..szablonowe_modul.NormaWzoruKodowaniaTekstu("([%a%d]+)"..jak..co,"(%d+)")..")>",function(poczatek,nazwa_przed_nieodkodowane,obiekt,kod)
local nazwa_przed=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,nazwa_przed_nieodkodowane,nil,tab_element);
local nazwa,odstepy,atrybuty,koniec=mw.ustring.match(nazwa_przed,"^([%a%d]+)(%s*)(.-)%s*(/?)%s*$");
nazwa=mw.ustring.lower(nazwa);
if((koniec=="/")or(nazwa=="br")or(nazwa=="hr")or(nazwa=="templatestyles"))then
local szablon="<"..poczatek..nazwa_przed..">";
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,ObiektFun(nazwa));
end;
return nil;
end);
return tekst_artykulu;
end;
tekst_artykulu=AnalizujDomykajace(tekst_artykulu,"inne","begin");
tekst_artykulu=AnalizujDomykajace(tekst_artykulu,"","begin");
tekst_artykulu=AnalizujDomykajace(tekst_artykulu,"inne","end");
tekst_artykulu=AnalizujDomykajace(tekst_artykulu,"","end");
----
return tekst_artykulu;
end;
tekst_artykulu=PreprocesorSzablonow(tekst_artykulu);
local function Kompilacja(tekst_artykulu)
----
local ZamianaLINKWNaLINKZ=function(zawartosc,dalej)
local czy_url=strony_modul.SprawdzanieURL(zawartosc);
if(czy_url)then
local szablon="["..zawartosc.."]";
return "["..ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,"LINKZ").."]"..dalej;
else
if((dalej)and(dalej~=""))then
if(specjalne_modul["CzyAdresLinkuWewnętrznego"]{adres=zawartosc,})then
local szablon;
if(mw.ustring.match(zawartosc,"|"))then
szablon="[["..zawartosc..dalej.."]]";
else
local nazwa=mw.ustring.gsub(zawartosc,"^[%s_]*:[%s_]*","");
szablon="[["..zawartosc.."|"..nazwa..dalej.."]]";
end;
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,"LINKW");
end;
end;
local szablon="[["..zawartosc.."]]";
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,"LINKW")..dalej;
end;
end;
local PracePrzygotowywujace;
NiedokonczoneElementyWikikodu=function(tekst_artykulu,czy_main)
local function DomykajaceIOdtwierajace(tekst_artykulu,jak,tablica_znacznikow)
repeat
local ile_znacznik_niedomykajacy;
local ile_znacznik_niedomykajacy_ujemny=0;
tekst_artykulu,ile_znacznik_niedomykajacy=mw.ustring.gsub(tekst_artykulu,"<("..szablonowe_modul.NormaWzoruKodowaniaTekstu("([%a%d]+)"..jak.."begin","(%d+)")..")>(.*)$",function(nazwa_przed_nieodkodowane,obiekt,kod,zawartosc)
local nazwa_przed=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,nazwa_przed_nieodkodowane,nil,tab_element);
if(tablica_znacznikow)then
if(not tablica_znacznikow[nazwa_przed])then
ile_znacznik_niedomykajacy_ujemny=ile_znacznik_niedomykajacy_ujemny+1;
return nil;
end;
end;
zawartosc=INNEPRE(zawartosc,true);
zawartosc=NiedokonczoneElementyWikikodu(zawartosc);
zawartosc=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,zawartosc,nil,tab_element);
local nazwa,odstepy,atrybuty=mw.ustring.match(nazwa_przed,"^([%a%d]+)(%s*)(.-)%s*$");
local szablon="<"..nazwa_przed..">"..zawartosc..((mw.ustring.match(zawartosc,"\n=[^\n]*[^%s=][^\n]*=[^%S\n]*$")
or mw.ustring.match(zawartosc,"\n[%*#:;][^\n]*$")
) and "\n" or "").."</"..nazwa..">";
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,"ZNACZNIK");
end);
ile_znacznik_niedomykajacy=ile_znacznik_niedomykajacy-ile_znacznik_niedomykajacy_ujemny;
until (ile_znacznik_niedomykajacy==0);
repeat
local ile_znacznik_nieotwierajacy;
local ile_znacznik_nieotwierajacy_ujemny=0;
tekst_artykulu,ile_znacznik_nieotwierajacy=mw.ustring.gsub(tekst_artykulu,"^(.*)</("..szablonowe_modul.NormaWzoruKodowaniaTekstu("([%a%d]+)"..jak.."end","(%d+)")..")>",function(zawartosc,nazwa_po_nieodkodowane,obiekt,kod)
local nazwa_po=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,nazwa_po_nieodkodowane,nil,tab_element);
if(tablica_znacznikow)then
if(not tablica_znacznikow[nazwa_po])then
ile_znacznik_nieotwierajacy_ujemny=ile_znacznik_nieotwierajacy_ujemny+1;
return nil;
end;
end;
zawartosc=INNEPRE(zawartosc);
zawartosc=NiedokonczoneElementyWikikodu(zawartosc);
zawartosc=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,zawartosc,nil,tab_element);
local nazwa,odstepy,atrybuty=mw.ustring.match(nazwa_po,"^([%a%d]+)(%s*)(.-)%s*$");
local szablon="<"..nazwa..">"..((mw.ustring.match(zawartosc,"^=[^\n]*[^%s=][^\n]*=[^%S\n]*\n")
or mw.ustring.match(zawartosc,"^[%*#:;][^\n]*\n")
) and "\n" or "")..zawartosc.."</"..nazwa_po..">";
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,"ZNACZNIK");
end);
ile_znacznik_nieotwierajacy=ile_znacznik_nieotwierajacy-ile_znacznik_nieotwierajacy_ujemny;
until (ile_znacznik_nieotwierajacy==0);
return tekst_artykulu;
end;
if(__FUNCTION_niedokonczone)then
local wynik,gdy_nie,tablica_znacznikow,czy_koniec,__FUNCTION=__FUNCTION_niedokonczone(tekst_artykulu,tab_element);
if(gdy_nie)then
if(czy_koniec)then return wynik or tekst_artykulu;end;
tekst_artykulu=wynik or tekst_artykulu;
tekst_artykulu=__FUNCTION and __FUNCTION(tekst_artykulu) or tekst_artykulu;
tekst_artykulu=tablica_znacznikow and DomykajaceIOdtwierajace(tekst_artykulu,"",tablica_znacznikow) or tekst_artykulu;
return tekst_artykulu;
else
tekst_artykulu=wynik or tekst_artykulu;
end;
end;
local function DomykajaceIOdtwierajaceWikiTabelka(tekst_artykulu)
repeat
local ile_wikitabela_1;
tekst_artykulu,ile_wikitabela_1=szeregi_modul.ZamianaZnakowaSzeregu(tekst_artykulu,"({|)(.-)$",
function(szereg,numer,licznik_wzor,numer_a,numer_b,poczatek,szablon)
return mw.ustring.match(szablon,"\n%{%|"),((licznik_wzor==1)and 2 or 3);
end,
function(licznik_wzor,poczatek,szablon)
szablon=INNEPRE(szablon,true);
szablon=NiedokonczoneElementyWikikodu(szablon);
szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon,nil,tab_element);
return (((czy_main)and(licznik_wzor==1)) and "" or "\n")..ZamienObiektSzablonuKodem(self,poczatek..szablon.."\n|}",tablica_analizy_obiektow_strony_dany_modul,"WIKITABELA");
end,
function(wzor,licznik_wzor,czy)
if(czy_main)then
if(licznik_wzor==1)then return "^"..wzor,true;end;
return "\n"..wzor,false;
else
return "\n"..wzor,false;
end;
end);
until (ile_wikitabela_1==0);
repeat
local ile_wikitabela_2;
tekst_artykulu,ile_wikitabela_2=mw.ustring.gsub(tekst_artykulu,"^(.-)(\n|})",function(szablon,koniec)
szablon=INNEPRE(szablon);
szablon=NiedokonczoneElementyWikikodu(szablon);
szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon,nil,tab_element);
return ZamienObiektSzablonuKodem(self,"\n{|\n"..szablon..koniec,tablica_analizy_obiektow_strony_dany_modul,"WIKITABELA");
end);
until (ile_wikitabela_2==0);
return tekst_artykulu;
end;
local function DomykajaceIOdtwierajaceLinia(tekst_artykulu,wzor_dodatnie,wzor_ujemne)
tekst_artykulu=szeregi_modul.ZamianaZnakowaLinii(tekst_artykulu,function(linia)
local dodatnie=nil;
local a,b,c=mw.ustring.match(linia,wzor_dodatnie);
if((not a)or(not b)or(not c))then
a,b=mw.ustring.match(linia,wzor_ujemne);
if((not a)or(not b))then return nil;end;
c=nil;
else
dodatnie=true;
end;
if(dodatnie)then
b=DomykajaceIOdtwierajace(b,"");
return a..b..c;
else
b=DomykajaceIOdtwierajace(b,"");
return a..b;
end;
end);
return tekst_artykulu;
end;
---
tekst_artykulu=DomykajaceIOdtwierajace(tekst_artykulu,"inne");
-----
local wzor_dodatnie="^(=+[^%S\n]*)([^\n]-[^%s=][^\n]-)([^%S\n]*=+[^%S\n]*)$";
local wzor_ujemne="^([%*#;:]+[^%S\n]*)([^\n]+)$";
tekst_artykulu=DomykajaceIOdtwierajaceLinia(tekst_artykulu,wzor_dodatnie,wzor_ujemne);
-----
---
--tekst_artykulu=DomykajaceIOdtwierajace(tekst_artykulu,"inne");
tekst_artykulu=DomykajaceIOdtwierajace(tekst_artykulu,"");
tekst_artykulu=DomykajaceIOdtwierajaceWikiTabelka(tekst_artykulu);
return tekst_artykulu;
end;
local function ZNACZNIKI(tekst_artykulu,jak)
local ile_odjac_znacznik_niedomykajacy=0;
local tekst_artykulu,ile_znacznik_niedomykajacy=mw.ustring.gsub(tekst_artykulu,"<("..szablonowe_modul.NormaWzoruKodowaniaTekstu("([%a%d]+)"..jak.."begin","(%d+)")..")>(.-)</("..szablonowe_modul.NormaWzoruKodowaniaTekstu("(%2)"..jak.."end","(%3)")..")>",function(nazwa_przed_nieodkodowane,obiekt,kod,zawartosc,nazwa_po_nieodkodowane,obiekt2,kod2)
local nazwa_przed=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,nazwa_przed_nieodkodowane,nil,tab_element);
local nazwa,odstepy,atrybuty=mw.ustring.match(nazwa_przed,"^([%a%d]+)(%s*)(.-)%s*$");
nazwa=mw.ustring.lower(nazwa);
local function TenZnacznik()
local nazwa_po=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,nazwa_po_nieodkodowane,nil,tab_element);
zawartosc=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,zawartosc,nil,tab_element);
if(jak=="")then
zawartosc=INNEPRE(zawartosc,true);
end;
local szablon="<"..nazwa_przed..">"..zawartosc.."</"..nazwa_po..">";
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,ObiektFun(nazwa));
end;
local function InneZnacznik()
ile_odjac_znacznik_niedomykajacy=ile_odjac_znacznik_niedomykajacy+1;
local szablon="<"..nazwa_przed_nieodkodowane..">"..zawartosc.."</"..nazwa_po_nieodkodowane..">";
return szablon;
end;
if(not mw.ustring.match(atrybuty,"^%s*$"))then
if(odstepy~="")then
if((jak~="")and(jak~="inc"))then
return TenZnacznik();
end;
else
return InneZnacznik();
end;
else
if((jak~="")and(jak~="inc"))then
return TenZnacznik();
end;
end;
----
local ile_zastapione;local ile_pominiete;
zawartosc,ile_zastapione,ile_pominiete=ZNACZNIKI(zawartosc,jak);
zawartosc=PracePrzygotowywujace(zawartosc);
zawartosc=INNEPRE(zawartosc,true);
zawartosc=NiedokonczoneElementyWikikodu(zawartosc);
return TenZnacznik();
end);
return tekst_artykulu,ile_znacznik_niedomykajacy,ile_odjac_znacznik_niedomykajacy;
end;
----
PracePrzygotowywujace=function(tekst_artykulu,czy_main)
local ile_linkw;local ile_linkz;local ile_var;local ile_template;local ile_wikitabela;
local function Szablon(zawartosc,przed,po,obiekt,czy_linkw,dalej)
local ile_znacznik_niedomykajacy,ile_odjac_znacznik_niedomykajacy;
zawartosc,ile_znacznik_niedomykajacy,ile_odjac_znacznik_niedomykajacy=ZNACZNIKI(zawartosc,"");
zawartosc=PracePrzygotowywujace(zawartosc);
zawartosc=INNEPRE(zawartosc,true,(obiekt=="SZABLON"));
zawartosc=NiedokonczoneElementyWikikodu(zawartosc);
zawartosc=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,zawartosc,nil,tab_element);
if(czy_linkw)then
return ZamianaLINKWNaLINKZ(zawartosc,dalej);
else
local szablon=przed..zawartosc..po;
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,obiekt);
end;
end;
repeat
repeat
tekst_artykulu,ile_linkw=szeregi_modul.ZamianaZnakowaSzeregu(tekst_artykulu,"%[%[(.-%[?)%]%](%]?)(%l*)",
function(szereg,numer,numer_a,numer_b,szablon,dodatkowe,dalej)
local czy_dalej_kwadratowe=mw.ustring.match(szablon,"%[%[");
if(czy_dalej_kwadratowe)then
return czy_dalej_kwadratowe,2;
else
return mw.ustring.match(szablon,"^%["),1;
end;
end,
function(szablon,dodatkowe,dalej)
if(dodatkowe~="")then
local czy_linkz=mw.ustring.match(szablon,"%[[^%[%]]*$");
if(czy_linkz)then
szablon=szablon..dodatkowe;
return Szablon(szablon,"[[","]]","LINKW",true,dalej);
else
return Szablon(szablon,"[[","]]","LINKW",true,"")..dodatkowe..dalej;
end;
else
return Szablon(szablon,"[[","]]","LINKW",true,dalej);
end;
end);
until (ile_linkw==0);
tekst_artykulu,ile_linkz=szeregi_modul.ZamianaZnakowaSzeregu(tekst_artykulu,"%[(.-)%]",
function(szereg,numer,numer_a,numer_b,szablon)
return mw.ustring.match(szablon,"%["),1;
end,
function(szablon)
return Szablon(szablon,"[","]","LINKZ");
end);
repeat
tekst_artykulu,ile_var=szeregi_modul.ZamianaZnakowaSzeregu(tekst_artykulu,"{{{(.-)}}}",
function(szereg,numer,numer_a,numer_b,szablon)
local czy_dalej_klamerka=mw.ustring.match(szablon,"%{%{%{");
if(czy_dalej_klamerka)then
return czy_dalej_klamerka,3;
else
return mw.ustring.match(szablon,"^%{"),1;
end;
end,
function(szablon)
return Szablon(szablon,"{{{","}}}","ZMIENNA");
end);
until (ile_var==0);
tekst_artykulu,ile_template=szeregi_modul.ZamianaZnakowaSzeregu(tekst_artykulu,"{{(.-)}}",
function(szereg,numer,numer_a,numer_b,szablon)
local czy_dalej_klamerka=mw.ustring.match(szablon,"%{%{");
if(czy_dalej_klamerka)then
return czy_dalej_klamerka,2;
else
return mw.ustring.match(szablon,"^%{"),1;
end;
end,
function(szablon)
return Szablon(szablon,"{{","}}","SZABLON");
end);
tekst_artykulu,ile_wikitabela=szeregi_modul.ZamianaZnakowaSzeregu(tekst_artykulu,"{|(.-)\n|}",
function(szereg,numer,licznik_wzor,numer_a,numer_b,szablon)
return mw.ustring.match(szablon,"\n%{%|"),(czy_main and ((licznik_wzor==1) and 2 or 3) or 3);
end,
function(licznik_wzor,szablon)
if((czy_main)and(licznik_wzor==1))then
return Szablon(szablon,"{|","\n|}","WIKITABELA");
else
return "\n"..Szablon(szablon,"{|","\n|}","WIKITABELA");
end;
end,
function(wzor,numer_begin,czy)
if(czy_main)then
if(numer_begin==1)then return "^"..wzor,true;end;
return "\n"..wzor,false;
else
return "\n"..wzor,false;
end;
end);
until ((ile_linkw==0)and(ile_linkz==0)and(ile_var==0)and(ile_template==0)and(ile_wikitabela==0));
return tekst_artykulu;
end;
----
local ile_odjac_znacznik_niedomykajacy_0;
if(__FUNCTION_INCLUDE)then
tekst_artykulu,ile_znacznik_niedomykajacy_0,ile_odjac_znacznik_niedomykajacy_0=ZNACZNIKI(tekst_artykulu,"inc");
ile_znacznik_niedomykajacy_0=ile_znacznik_niedomykajacy_0-ile_odjac_znacznik_niedomykajacy_0;
----
tekst_artykulu=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul)
if(obiekt=="INCLUDE")then
local nazwa,zawartosc,tab=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
if(__FUNCTION_INCLUDE(nazwa))then
local function inc(zawartosc)
return (mw.ustring.match(tekst_artykulu,"{{{[^{}|]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."%s*}}}")
or mw.ustring.match(tekst_artykulu,"{{.-|.-"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)..".-}}")
)and true or false;
end;
if(nazwa=="noinclude")then
if(poziom_iteracji==0)then
return (not inc(zawartosc)) and "" or zawartosc;
else
return zawartosc;
end;
elseif(nazwa=="includeonly")then
if(poziom_iteracji==0)then
return (not inc(zawartosc)) and zawartosc or "";
else
return "";
end;
end;
end;
end;
return nil,true;
end);
end;
----
local ile_odjac_znacznik_niedomykajacy_1;
tekst_artykulu,ile_znacznik_niedomykajacy_1,ile_odjac_znacznik_niedomykajacy_1=ZNACZNIKI(tekst_artykulu,"inne");
ile_znacznik_niedomykajacy_1=ile_znacznik_niedomykajacy_1-ile_odjac_znacznik_niedomykajacy_1;
----
tekst_artykulu=PracePrzygotowywujace(tekst_artykulu,true);
----
local ile_odjac_znacznik_niedomykajacy_2;
tekst_artykulu,ile_znacznik_niedomykajacy_2,ile_odjac_znacznik_niedomykajacy_2=ZNACZNIKI(tekst_artykulu,"");
return tekst_artykulu;
end;
PREWSTAWIAJACA=function(tekst_artykulu)
czy_wynik=nil;
tekst_artykulu=PreprocesorSzablonow(tekst_artykulu);
tekst_artykulu=Kompilacja(tekst_artykulu);
czy_wynik=true;
return tekst_artykulu;
end;
tekst_artykulu=Kompilacja(tekst_artykulu)
local function PoczatekKoniecTekst(tekst_artykulu)
local tekst_poczatek=(__FUNKCJA_poczatek and __FUNKCJA_poczatek(tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) or nil);
local tekst_koniec=(__FUNKCJA_koniec and __FUNKCJA_koniec(tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) or nil);
if(((tekst_poczatek)and(not mw.ustring.match(tekst_poczatek,"^%s*$")))or((tekst_koniec)and(not mw.ustring.match(tekst_koniec,"^%s*$"))))then
tekst_poczatek=tekst_poczatek and PREWSTAWIAJACA(tekst_poczatek) or tekst_poczatek;
tekst_koniec=tekst_koniec and PREWSTAWIAJACA(tekst_koniec) or tekst_koniec;
tekst_artykulu=(tekst_poczatek or "")..tekst_artykulu..(tekst_koniec or "");
end;
return tekst_artykulu;
end;
tekst_artykulu=PoczatekKoniecTekst(tekst_artykulu);
local function PraceKoncowe(tekst_artykulu)
tekst_artykulu=NiedokonczoneElementyWikikodu(tekst_artykulu,true);
return tekst_artykulu;
end;
tekst_artykulu=PraceKoncowe(tekst_artykulu);
tekst_artykulu=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_artykulu,nil,tab_element);
tekst_artykulu=INNEPRE(tekst_artykulu);
tekst_artykulu=szablonowe_modul.OdkodowanieZakodowanychNormKodowychNieschematycznychRzeczy(self,tekst_artykulu,nil,tablica_analizy_obiektow_strony_dany_modul);
return tekst_artykulu;
end;
local function InicjujTabela()
if(not __FUNKCJA3)then
if(not __FUNKCJA4)then
for obiekt,_ in pairs(szablonowe_dane_modul.tablica_podstawowe_elementy_szablonowe_mediawiki)do
tablica_analizy_obiektow_strony_dany_modul[obiekt]={};
end;
for obiekt,_ in pairs(szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki)do
tablica_analizy_obiektow_strony_dany_modul[obiekt]={};
end;
else
tablica_analizy_obiektow_strony_dany_modul=__FUNKCJA4(tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
end;
else
if(__FUNKCJA4)then
tablica_analizy_obiektow_strony_dany_modul=__FUNKCJA4(tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
end;
end;
end;
local function UstawieniaPoczatkoweObiektowSzablonow()
if(not tablica_analizy_obiektow_strony_dany_modul)then
if((self.tablica_analizy_obiektow_strony_dany_modul)
and(self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu])
)then
tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];
numer_szablonu=self.numer_szablonu;
else
if(not self.tablica_analizy_obiektow_strony_dany_modul)then self.tablica_analizy_obiektow_strony_dany_modul={};end;
if(not self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu])then self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu]={};end;
---
tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];
---
InicjujNumeryPoczatkoweObiektowSzablonow();
self.numer_szablonu=numer_szablonu;
InicjujTabela();
end;
else
InicjujNumeryPoczatkoweObiektowSzablonow();
InicjujTabela();
end;
end;
----
UstawieniaPoczatkoweObiektowSzablonow();
---
local PreProcesorSTARE=function(tekst_artykulu,wzor_kodu,czy_tak)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"("..wzor_kodu..")",function(szablon,obiekt,kod)
if(czy_tak)then
local tablica_szablon_obiekt=tablica_analizy_obiektow_strony_dany_modul and tablica_analizy_obiektow_strony_dany_modul[obiekt] or nil;
local kod=tablica_szablon_obiekt and tonumber(kod) or nil;
if(kod)then
local szablon_wynik=tablica_szablon_obiekt and tablica_szablon_obiekt[kod] or nil;
if(not szablon_wynik)then
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,"STARE");
else
local wynik=__FUNKCJA2(szablon_wynik,obiekt,kod,tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul,numer_szablonu);
return wynik;
end;
else
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,"STARE");
end;
else
return ZamienObiektSzablonuKodem(self,szablon,tablica_analizy_obiektow_strony_dany_modul,"STARE");
end;
end);
return tekst_artykulu;
end;
tekst_artykulu=PreProcesorSTARE(tekst_artykulu,szablonowe_modul.NormaWzoruKodowaniaTekstu(),true);
tekst_artykulu=PreProcesorSTARE(tekst_artykulu,szablonowe_modul.NormaWzoruKodowaniaEncodeWikiTekstu(),false);
tekst_artykulu=AnalizaObiektowSzablonowegoTekstu(tekst_artykulu);
return tekst_artykulu;
end;
return p;
h9020qcoax8pauxy8sqx31x1bhsz65q
Pomoc:Spis treści/Szablony/Tom IV
12
60159
557827
551550
2026-09-28T18:03:21Z
Persino
2851
/* Szablony warunkowe */
557827
wikitext
text/x-wiki
<noinclude><!--
-->{{UnikatowaStronaStart
| nagłówek = {{Podrozdział|Pomoc Wikibooks - Szablony}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
== Szablony pudełek formatujące tekst ==
* {{s|---}} - szablon powoduje wstawienie w treść dokumentu kreski, zbudowany przy pomocy znacznika {{Tag|hr|pojedynczy}}.
----
* {{s|F}} i {{s|F*}} - szablony, blokowego (ten pierwszy) i liniowego (ten drugi), do formatowania tekstu.
* {{s|Kapitaliki}} i {{s|Kap}} (przekierowanie do tego ostatniego) - szablon przekształca tekst na tekst pisany kapitalikami.
* {{s|Rozstrzelony}} i {{s|Roz}} - szablon powoduje rozstrzelenie liter w tekście.
* {{s|Un}} - szablon wyświetla tekst podkreślony, zastępuje tag {{Tag|u}}, który nie powinien być używany do podkreślonego tekstu ze względu na jego zdeprecjonowanie w HTML 4.01. oraz zmianę znaczenia w HTML 5.
----
* {{s|Centruj}} i {{s|Ce}} (przekierowanie do tego ostatniego) - szablony powodujące wycentrowania jednej lub kilku linii tekstu.
* {{s|CentrujStart}} i {{s|CentrujKoniec}} - szablony, otwierający i zamykające, co pomiędzy nimi jest tekst, który należy wycentrować.
* {{s|CentrujStart2}} i {{s|CentrujKoniec2}} - szablon, otwierający i zamykający, zbudowany w oparciu o tabelkę, z marginesami, tzn. lewym i prawym, automatycznymi, o określonym rozmiarze.
* {{s|Ruby}} i {{s|Ruby2}} - szablony wyświetlające tekst nad znakami tekstu jakiś inny tekst, a za nim jest jeszcze znów inny tekst.
* {{s|Tab}} - szablon używany do tworzenia wcięć pierwszej linii akapitu.
----
* {{s|Summary}} - szablon przeznaczony do używania na stronach indeksowych, obejmuje spis treści stron z przestrzeni głównej, które mają być pobrane do epuba i wyszczególnione w epub-owym spisie treści jako osobna pozycja.
* {{s|Tryb ciemny}} - szablon służy do przełączania pomiędzy dwoma alternatywnymi wersjami tekstu – wersją główną, dostosowaną do trybu jasnego i wersją pomocniczą dostosowaną do trybu ciemnego.
* {{s|JustowanieStart}} i {{s|JustowanieKoniec}}, {{s|JustowanieStart2}} i {{s|JustowanieKoniec2}} - szablony startowe i zamykające do justowania tekstu.
=== Szablony z zawartością ===
* {{s|Dane tekstu}} - zawiera informacje na temat całej pracy (podręcznika) i jego podartykułów na każdej jego stronie.
* {{s|Numerowanie w tabeli}} - szablon do generowania tabeli z ułatwionym wprowadzaniem treści kolumny z liczba porządkową.
==== Szablony opisujące coś ====
* {{s|EfektKodów}} - szablon używamy do przedstawienia kodu i jego zastosowania, wraz z jego wynikiem.
* {{s|OpisKsiążek}} - szablon służy do podawania nazwy strony w przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz w przestrzeni {{Np|Template|link=tak}} i {{Np|Module|link=tak}} używając kolejno szablonów {{s|S}} i {{s|M}}, lub podając nazwę linku, który jest wyświetlany jak zwykły link (nie jak szablon lub moduł - bez użycia tych szablonów) przy użyciu szablonu {{s|ly}}, wraz z ich opisami. Można też podać alternatywną wyświetlaną nazwę strony. Pozycje tych stron są numerowane.
== Szablony czasu ==
* {{s|Czas}} - szablon służy do do wyświetlania sformatowanego czasu.
* {{s|Data wydania}} - zwraca datę wydania dzieła i liczbę dni, miesięcy lub lat która od tej daty upłynęła.
* {{s|Dts}} - szablon jest używany, aby prawidłowo sortować daty w tabelach. Daty w tabelach są prawidłowo sortowane wyłącznie, gdy podane są w formacie rok-miesiąc-dzień, który nie jest powszechnie używany.
* {{s|Dzień gregoriański}} - szablon zwraca liczbę dni gregoriańskich jakie upłynęły od pierwszego roku pierwszego miesiąca i dnia.
* {{s|ISYEARLEAP}} - szablon zwraca "1", jeśli rok podany jako pierwszy parametr jest przestępny oraz "0" w przeciwnym wypadku.
* {{s|Lat lub miesięcy temu}} - zwraca liczbę miesięcy lub lat ile upłynęło od podanej daty.
* {{s|MONTHMIA}} - szablon zwraca nazwę miesiąca w mianowniku.
* {{s|MONTHMSC}} - szablon zwraca nazwę miesiąca w miejscowniku.
* {{s|MONTHNAME}} - zwraca nazwę miesiąca w dopełniaczu dla parametru numer miesiąca.
* {{s|MONTHNUMBER}} - szablon zwraca numer miesiąca dla parametru nazwa miesiąca.
* {{s|NUMBEROFDAYS}} - szablon zwraca liczbę dni w miesiącu.
* {{s|Wiek w dniach}} - zwraca liczbę dni pomiędzy dwoma datami.
=== Ramy czasowe (głosowanie) i wkład użytkownika ===
* {{s|Głosowanie}}, {{s|Głosowanie2}} - {{s|Ramy czasowe zdarzenia}} - szablony te określają ramy czasowe pomiędzy, którymi odbywa się głosowanie na polskim {{NAZWASERWISU|link=tak|po=ie}}.
** {{s|Głosowanie/include}} - szablon do czasowych zdarzenia głosowania.
** {{s|Głosowanie/wynik}} - szablon potrzebny do przedstawiania wyników głosowania.
** {{s|Ramy czasowe zdarzenia/tabela}} - szablon do zakończonej lub trwającej dyskusji.
** {{s|Ramy czasowe zdarzenia/LSnK}} - szablon (makro) przekształca podaną w sekundach długość trwania odcinka czasu na tekst opisowy.
==== Wkład użytkownika i linki danej strony ====
* {{s|La}}, {{s|Ln}}{{Patrz|ln}}, {{s|Lt}}, {{s|Lx}} i {{s|Sil}} - szablony tworzące zestaw linków do podanego artykułu znajdującego się w przestrzeni głównej (edytuj, dyskusja, historia, linkujące, obserwuj, rejestr).
* {{s|Lw}} - szablon do tworzenia linków do stron Wikipedysty, wkładu i rejestru operacji.
* {{s|LnDNU}} - szablon ten działa tak samo jak {{LinkPatrz|ln}}, ale dodatkowo dodaje stronę do jednej z podkategorii {{lk|Dyskusje nad usuwaniem lub naprawą}} - zgodnie z początkiem nazwy strony.
* {{s|Userscan}} - szablon prezentujący wkład wikipedysty.
* {{s|Użytkownik}} - szablon prezentuje linki danego podręcznika.
* {{s|User-multi}} - szablon pozwala na automatyczne dodanie rozmaitych linków do nazwy użytkownika, w zależności od wybranych opcji może to być na przykład link do licznika edycji, do rejestru stron usuniętych, strony dyskusji itd. Jest bardziej wszechstronną alternatywą dla {{s|Użytkownik}}.
=== Szablony nowych i wyróżnionych podręczników miesiąca oraz szablony głosowania ===
* {{s|Link FA}} - umieszczamy w linkach w indyfikatorze, używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks.
* {{s|NPM}} i {{s|WM}} - kolejno nowych i wyróżnionych podręczników miesiąca.
* {{s|Zwycięzca NPM}} i {{s|Zwycięzca NPM krótki}} - szablony ikony nowych podręczników miesiąca.
* {{s|WM/Info}} i {{s|WM/Info krótkie}} - szablony ikony wyróżnionych książek miesiąca.
* {{s|WM/Zegar}} - zegar głosowania wyróżnionych podręczników miesiąca.
== Szablony do dokumentacji szablonów ==
=== Przykłady tabelkowe pewnego szablonu ===
Przykłady do demonstracji problemów na polskim {{NAZWASERWISU|link=tak}}.
==== Szablony do demonstracji pewnych przykładów ====
* {{s|Lorem ipsum}} - szablon potrzebny do demonstracji różnych aspektów na polskim {{NAZWASERWISU|link=tak|wikipedia=tak|po=ie}}.
==== Szablony przykładów opisujące szablon z różnymi parametrami ====
* {{s|Tabela przykładów użycia szablonów}} - szablon tworzy tabelę z dwoma nagłówkami, tzn.: '''Wywołanie''' i '''Efekt''', a przy parametrze {{Parametr|uwagi|tak}} tworzy trzeci nagłówek: '''Uwagi'''.
* {{s|Przykład użycia szablonu w tabeli}} - szablon tworzy tabelkę zawierającą przykłady wywołań szablonu do wstawienia na stronę opisu szablonu.
* {{s|Tytuł strony z szablonem}} - szablon podaje nazwę strony aktualnie opisywanego szablonu
=== Szablony dokumentacji ===
* {{s|Dokumentacja}} i {{s|Podstrona dokumentacji}} - szablony dokumentacji szablonu (ten pierwszy) i opisu (ten drugi).
** {{s|Dokumentacja/preload}} - strona (szablon) do ładowania przykładowego opisu do stworzenia nowego opisu dokumentacji.
* {{s|Kwestie techniczne}} - szablon do zgłaszania problemów technicznych przez użytkownika.
* {{s|Strukturyzacja Wizualnego Edytora}} - szablon, który definiuje parametry i jakie typy możliwe on obsługuje, do Wizualnego Edytora (VE).
* {{s|Klasyfikacja modułu}} - szablon używany do klasyfikacji {{lpg|Lua|modułów Lua}} według ich wersji rozwojowych.
==== Dokumentacja szablonów szablonów ====
* {{s|Lua}} - szablon powiadamiający, że dany szablon korzysta z modułów {{lpr|Lua}} w {{lpr|Lua|Scribunto}}.
* {{s|Dostępność}} - szablon służący do oznaczania innych szablonów ze względu na problemy z dostępnością (jeśli nie da się ich wyeliminować) + kilka innych.
* {{s|Uniwersalny szablon językowy}} - uniwersalny szablon do tworzenia kolorowych ramek do podręczników do nauki języków obcych.
* {{s|Używa Wikidane}} - szablon informujące w nagłówku dokumentacji, że szablon używa elementów WikiDane.
* {{s|Wysokie ryzyko}} - szablon jest używany informacyjnie i ostrzegawczo w innych szablonach, które ze względu na częste używanie, poziom komplikacji kodu lub znaczenie systemowe powinny być zmieniane z większą niż zwykle rozwagą i starannością.
== Szablony dokumentacji funkcji {{NAZWASERWISU|link=tak}} ==
=== Szablony dokumentacji systemowej {{s|Man}} ===
* {{s|Man}} - szablon wyświetlający internetową pomoc systemu {{lpg|Man}}.
* {{s|PosixMan}} - szablon wyświetlający funkcje systemowe w standardzie {{lpg|POSIX}}.
* {{s|KernelMan}} - szablon wyświetlający pomoc internetową systemową funkcji jądra systemu operacyjnego.
=== Szablony dokumentacji {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
* {{s|LzLua}} - szablon link odnoszących sie do pewnych punków, którym są definicje funkcji na stronie tej dokumentacji.
== Formatowanie ramek ==
* {{s|Pokaż}} i {{s|Tabela nawigacyjna}} - tabela z ukrywanym lub pokazanym fragmentem tekstu.
* {{s|Show}} i {{s|Ramka nawigacyjna}} - ramka oparta o warstwy {{Tag|div}} z ukrywanym lub pokazywanym fragmentem tekstem.
** {{s|Show/W tabelach}} - przykład użycia szablonu {{s|Show}}.
* Menu stworzone o szablon {{s|Tabela nawigacyjna}}:
** {{s|Menu listy pozycji kategorii}} - szablon do tworzenia menu listy pozycji danej kategorii.
** Szablony stworzone o szablon {{s|Menu listy pozycji kategorii}}:
*** {{s|Menu listy kategorii portali}} - szablon do tworzenia menu listy kategorii tematycznych podręcznikowych kategorii: {{lk|Podręczniki według portalu}}.
*** {{s|Menu listy kategorii statusu}} - szablon wyświetlający menu listy kategorii statusu ukończenia poszczególnych podręczników kategorii: {{lk|Podręczniki według statusu}}.
*** {{s|Menu listy kategorii poziomu}} - szablon wyświetlający menu listy kategorii poziomu kształcenia poszczególnych podręczników kategorii: {{lk|Podręczniki według poziomu}}.
*** {{s|Menu listy kategorii tematycznych}} - szablon do tworzenia menu listy kategorii tematycznych podręcznikowych kategorii {{lk|Podręczniki według tematu}}.
*** {{s|Menu listy kategorii Światy dla dzieci}} - szablon wyświetla menu listy kategorii: {{lk|Wikijunior:Światy dla dzieci}}, dzielący książki dla dzieci według tematu, którą one dotyczą.
== Szablony do obliczeń matematycznych ==
* {{s|Jeśli równe}} - szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą.
* {{s|Liczba z absolutną jednostką długości}} - szablon sprawdza, czy liczba jest podana z absolutną jednostką długości, jeżeli jest podana, to zwraca tą liczbę, a jeżeli nie, to zwraca tą liczbę z jednostką długości {{Code|px}}.
* {{s|Maksimum}} i {{s|Max}} (przekierowanie do tego ostatniego) - szablony do liczenia maksimum z dwóch podanych liczb ewentualnie z jednostkami długości.
* {{s|Minimum}} i {{s|Min}} (przekierowanie do tego ostatniego) - szablony do liczenia minimum z dwóch podanych liczb ewentualnie z jednostkami długości.
* {{s|W pikselach}} - szablon przelicza długości, w jednostkach bezwzględnych lub liczby, na piksele oznaczone symbolicznie (skrótowo), czyli jako ({{Code|px}}), przestawiając je jako liczby w pikselach bez jednostek.
=== Szablony funkcji matematycznych ===
* {{s|Ogranicz}} - funkcja sprawdza wartość pierwszego parametru i jeżeli jest on większy od parametru "max" (domyślnie 240) lub mniejszy od parametru "min" (domyślnie 60) to jako wynik podaje odpowiednią z tych wartości. Jeżeli pierwszy parametr mieści się w tych granicach to jest zwracany bez zmian. Jeżeli pierwszy parametr nie jest liczbą, to jest zwracana wartość parametru "default" (domyślnie 240).
* {{s|Void}} - szablon pusty do skomplikowanych rozwiązań technicznych.
=== Szablony warunkowe ===
==== Szablony porównań ====
* {{s|Jeśli równe}} - szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą.
* {{s|Jeśli większe}} - szablon sprawdza rozmiary bezwzględne, czy pierwsza wartość jest większa od drugiej, wtedy zwraca niepustą wartość.
==== Szablony typowo warunkowe ====
* {{s|Jeśli niepuste}} - szablon przyjmuje dwa parametry, jeśli pierwszy parametr jest niepusty, wtedy zwraca ten parametr z odpowiednim przedrostkiem lub przedrostkiem i ewentualnie otoczona znacznikami.
* {{s|Jeśli niepuste komunikat}} - szablon używamy do wyświetlania komunikatu, jeśli jest niepusty pierwszy parametr tego szablonu, w przeciwnym przypadku wyświetla trzeci parametr.
==== Szablony istnienia ====
* {{s|Jeśli istnieje}} - szablon przyjmuje dwa parametry numerowane i trzeci, czyli: przedrostek, do pierwszego argumentu w warunku, by tym sprawdzić, czy strona istnieje, a jak tak - to wyświetla się jego pierwszy argument, przeciwnie - drugi.
==== Inne sszablony ====
* {{s|Pierwszy niepusty}} - szablon wyświetla pierwszy niepusty element z podanych argumentów, ewentualnie względem zmiennej testowej.
== Artykuły bez infoboksu ==
* {{s|Bez infoboksu}} i {{s|Potrzebne infoboksy}} - szablony, ten pierwszy jest wstawiany na strony dyskusji artykułu, gdy na stronie w przestrzeni {{Np|(main)|link=tak}} lub {{Np|Wikijunior|link=tak}} nie ma tam ściśle określonego infoboksu, a ten drugi jest wstawiany na strony w przestrzeni {{Np|Category|link=tak}} na odpowiednią stronę, która ma zgłaszać, czy ta kategoria jest pusta, czy nie, w tych dwóch przypadkach rodzic kategorii jest inny.
== Szablony ikon ==
* {{s|Ikona}} - ten szablon tworzy wbudowane ikony, które używane są na {{lpr|Metastrony|metastronach}} polskojęzycznej Wikibooks.
== Ramki pudełkowe ==
* {{s|W skrócie}} - ten szablon powinien prezentować streszczenie {{lr|Zasady|zasad Wikibooks}}.
== Szablony pomocy ==
* {{s|Pomagam}} - szablon przeznaczony jest dla doświadczonych użytkowników, którzy chcą pomóc w rozwiązywaniu problemów początkujących wikipedystów.
* {{s|Pomocy}} - szablon wstawia się, wpisując na swojej stronie poniższy tekst: {{s|Pomocy}} lub {{s|Pomocy|Treść problemu}} .
== Strony testowe szablonów ==
* {{s|Przypadek testowy}} - szablon generuje tabelę stosowaną na {{lpr|Brudnopisy i strony testowe szablonów|stronach testowych szablonów}}, która zestawia obok siebie dwie wersje szablonów – szablon główny i jego wersję z brudnopisu.
== Blokada Fundacji Wikimedia na wszystkie jego projekty ==
* {{s|Blokada WMF}} - użycie w przypadku blokad nałożonych przez Fundację Wikimedia.
== Strony z magicznymi linkami ==
* {{s|ISBN}} - szablon magicznego linku ''' ISBN ''' wykorzystujący moduł {{m|ISBN}}.
== Szablony operacji na ciągach (łańcuchach) wykorzystujące moduł {{m|String}} ==
* {{s|Długość}} - zwraca długość podanego ciągu.
* {{s|Subciąg}} - wycina fragment od wybranej pozycji o określonej długości. Parametrami jest odkąd dokąd zwracamy subciąg z tego ciągu.
* {{s|Subciąg2}} - wycina fragment od wybranej pozycji o określonej długości. Parametrami jest odkąd zwracamy subciąg w ciągu, i o jakiej długości.
* {{s|Dopasuj}} - znajdź pasujące w wyszukanym ciągu według wyrażenia regularnego.
* {{s|Pobierz}} - pobierz N-ty znak ciągu.
* {{s|Znajdź}} - zwraca pozycję określonego fragmentu w przeszukiwanym ciągu.
* {{s|Zastąp}} - zamienia w tekście w ciągu pewne podciągi (za pomocą wyrażenia regularnego) na inne.
* {{s|Powtórz}} - szablon powtarza ciąg przez podaną ileś razy.
* {{s|Łącz}} - szablon łączy podane ciągi za pomocą łącznika.
== Szablony parsera tag ==
* {{s|FormularzWejścia}} - szablon służy do tworzenia formularzy wejścia.
* {{s|ListaKategorii}} - szablon wyświetlający listę kategorii.
* {{s|MapaObrazu}} - szablon do wyświetlania mapy obrazu, o odpowiedniej wielkości, z linkiem lub linkami, na niej.
== Szablony ujednoznacznień ==
* {{s|Inne znaczenia}} - szablon informujący o różnych znaczeniach danego pojęcia.
* {{s|Nie mylić z}} - szablon wykorzystywany w przypadku książek o bardzo podobnych nazwach, a innych podobnych znaczeniach.
* {{s|Przekierowanie}} - szablon powinien być wstawiany na stronie, do których istnieje przekierowanie, które z kolei posiada jeszcze własną {{lpr|Strona ujednoznaczniająca|stronę ujednoznaczniającą}}.
* {{s|Ujednoznacznienie}} - szablon ten umieszcza się na stronach ujednoznaczniających. Efektem umieszczenia szablonu jest wyświetlenie krótkiej informacji
== Strony umieszczane na stronach kategorii ==
* {{s|Kategoria dla kategorii}}, {{s|Kategorie tematyczne}} i {{s|Metakategoria}} - szablony wstawiane na strony kategorii mówiące kolejno, że pierwsza kategoria zawiera tylko kategorie, kategorie tematyczne lub jest tylko metakategorią, czyli grupujące strony według ich statusu technicznego.
* {{s|Opis kategorii}} i {{s|Opis kategorii 2}} - szablony opisu kategorii, mający jeszcze dalsze funkcje ten pierwszy, np. wstawia niektóre szablony według jego definicji, czyli on informuje coś o kategorii, a ten drugi szablon ma podstawowe funkcje.
== Szablony wyświetlające zawartość strony ==
=== Szablony wyświetlające strony ===
* {{s|ArtykułSubst}} - szablon do ładowania artykułów innych niż aktualny artykuł w danej książce. Też jest możliwe przestawienie tego szablonu, by wyświetlał pełną nazwę artykułu lub książki.
=== Strony zbiorcze ===
* {{s|StronaSubst}} - szablon do wyświetlania zestawu wszystkich artykułów książki w formie zestawu za pomocą JavaScript.
* {{S|KsiążkaSubst}} - szablon drukuje pełną zawartość wszystkich artykułów aktualnej książki, gdy nazwa bazowa artykułu jest równa nazwie książki lub gdy jego subnazwa jest "Wersja do druku". Gdy subnazwa artykułu jest równa rozdziałowi na stronie głównej książki, to szablon drukuje wszystkie zawartości wszystkie zawartości artykułu należące do tego rozdziału.
=== Zawartości stron ===
* {{s|LuaSubst}} - szablon służy do wyświetlania zawartości kodów języka {{lpr|Lua}}, {{lpg|JavaScript}}, {{lpg|CSS}} i wikikodu, które są dostępne na stronach tego projektu.
== Szablony wyświetlające kod w językach komputerowych ==
* {{s|ŹródłoKodu}} - szablon służy do wyświetlania składni kodu w ramce, generowane przez inne szablony, np. przez szablon {{s|LuaSubst}}. A poniższe szablony wykorzystują go jako kombajn:
** {{s|ŹródłoXml}} - szablon kolorujący składnię kodu w języku skryptowym XML.
** {{s|ŹródłoHtml}} - szablon kolorujący składnię kodu w języku skryptowym HTML.
** {{s|ŹródłoCss}} - szablon kolorujący składnię kodu w języku kaskadowych arkuszy stylów CSS.
== Szablony zaawansowane linków ==
* {{s|WydobądźLinki}} - szablon wydobywa linki wewnętrzne i zewnętrzne z linków, kategorii i rozwiniętego wikikodu, czy HTML - wykorzystujący moduł {{m|StronicowyParser}}.
* {{s|Odnośnik}} - szablon po użyciu generuje odnośnik do pozycji literaturowej w formie żółtego dymku.
=== Szablony linków do baz danych ===
* {{s|ISSN}} - dla publikacji identyfikowanych za pomocą {{lpg|International Standard Serial Number}} (ISSN) 1234-5678.
* {{s|CAS}} - szablon służy do linkowania {{lpg|numer CAS|numeru CAS}} do {{lz|s=https://tools.wmflabs.org/magnustools/cas.php|c=language=pl&cas=|n=wyszukiwarki po numerze CAS}}, zwłaszcza w parametrach {{Code|numer CAS}} w {{s|Białko infobox}}, {{s|Pierwiastek infobox}} i {{s|Związek chemiczny infobox}}.
* {{s|CELEX}} - szablon służy do automatycznego generowania linków do systemu {{lpg|EUR-Lex}} Przy jego użyciu tworzy się linki do stron zwracających wyniki z wyszukiwania przy użyciu numeru {{lpg|CELEX}}.
* {{s|EUR-Lex}} - szablon służy do automatycznego generowania linków do oficjalnego systemu informacji prawnej Unii Europejskiej {{lpg|EUR-Lex}}. Przy jego użyciu tworzy się linki do podstron zawierających informacje o konkretnych dyrektywach, rozporządzeniach lub innych ogłoszonych aktach unijnych.
== Specjalistyczne szablony linków ==
* {{s|Top}} - szablon generuje link, który po kliknięciu na niego, jesteśmy przeniesieni na górę strony.
== Szablony publikacyjne ==
==== Akty prawne - {{lpg|Internetowy System Aktów Prawnych}} ====
Szablony służące do automatycznego generowania linków {{lpg|Internetowy System Aktów Prawnych|Internetowego Systemu Aktów Prawnych Sejmu RP}}:
* {{s|Dziennik Ustaw}} - przy jego użyciu tworzy się linki do podstron zawierających informacje o konkretnych ustawach, rozporządzeniach lub innych aktach normatywnych.
* {{s|Monitor Polski}} - przy jego użyciu tworzy się linki do podstron zawierających informacje o konkretnych aktach prawnych.
==== Szablony pomocnicze do wyświetlania szablonów typu {{S|Dziennik Ustaw}} i {{S|Monitor Polski}} ====
* {{s|Adres publikacyjny}}, {{s|Internetowy System Aktów Prawnych}} i {{s|Publikator}} - szablony pomocnicze do wyświetlania aktów prawnych w tego typu szablonach.
== Szablony pozwoleń i zgłoszeń ==
=== Szablony pozwoleń ===
* {{s|OTRS}} - szablon informuje, że pozwolenie na wykorzystanie materiałów użytych na stronie zostały udzielone, a zarchiwizowane jest w OTRS pod pewnym numerem.
=== Szablon statusu ===
* {{s|Status zgłoszenia}} - status realizowanych zadań, podzielone na różne wybieralne ścisłe kategorie.
== Szablony specjalistyczne podręcznikowe ==
* {{s|Rozmieniarka}} - szablon do rozmieniania pieniędzy.
{{BrClear}}
<noinclude>{{UnikatowaStronaKoniec}}{{Kategoria|Tekstowe opisy techniczne szablonów}}</noinclude>
ob93p4nurup9emx0if764s6elmc982d
557828
557827
2026-09-28T18:03:40Z
Persino
2851
/* Inne sszablony */
557828
wikitext
text/x-wiki
<noinclude><!--
-->{{UnikatowaStronaStart
| nagłówek = {{Podrozdział|Pomoc Wikibooks - Szablony}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
== Szablony pudełek formatujące tekst ==
* {{s|---}} - szablon powoduje wstawienie w treść dokumentu kreski, zbudowany przy pomocy znacznika {{Tag|hr|pojedynczy}}.
----
* {{s|F}} i {{s|F*}} - szablony, blokowego (ten pierwszy) i liniowego (ten drugi), do formatowania tekstu.
* {{s|Kapitaliki}} i {{s|Kap}} (przekierowanie do tego ostatniego) - szablon przekształca tekst na tekst pisany kapitalikami.
* {{s|Rozstrzelony}} i {{s|Roz}} - szablon powoduje rozstrzelenie liter w tekście.
* {{s|Un}} - szablon wyświetla tekst podkreślony, zastępuje tag {{Tag|u}}, który nie powinien być używany do podkreślonego tekstu ze względu na jego zdeprecjonowanie w HTML 4.01. oraz zmianę znaczenia w HTML 5.
----
* {{s|Centruj}} i {{s|Ce}} (przekierowanie do tego ostatniego) - szablony powodujące wycentrowania jednej lub kilku linii tekstu.
* {{s|CentrujStart}} i {{s|CentrujKoniec}} - szablony, otwierający i zamykające, co pomiędzy nimi jest tekst, który należy wycentrować.
* {{s|CentrujStart2}} i {{s|CentrujKoniec2}} - szablon, otwierający i zamykający, zbudowany w oparciu o tabelkę, z marginesami, tzn. lewym i prawym, automatycznymi, o określonym rozmiarze.
* {{s|Ruby}} i {{s|Ruby2}} - szablony wyświetlające tekst nad znakami tekstu jakiś inny tekst, a za nim jest jeszcze znów inny tekst.
* {{s|Tab}} - szablon używany do tworzenia wcięć pierwszej linii akapitu.
----
* {{s|Summary}} - szablon przeznaczony do używania na stronach indeksowych, obejmuje spis treści stron z przestrzeni głównej, które mają być pobrane do epuba i wyszczególnione w epub-owym spisie treści jako osobna pozycja.
* {{s|Tryb ciemny}} - szablon służy do przełączania pomiędzy dwoma alternatywnymi wersjami tekstu – wersją główną, dostosowaną do trybu jasnego i wersją pomocniczą dostosowaną do trybu ciemnego.
* {{s|JustowanieStart}} i {{s|JustowanieKoniec}}, {{s|JustowanieStart2}} i {{s|JustowanieKoniec2}} - szablony startowe i zamykające do justowania tekstu.
=== Szablony z zawartością ===
* {{s|Dane tekstu}} - zawiera informacje na temat całej pracy (podręcznika) i jego podartykułów na każdej jego stronie.
* {{s|Numerowanie w tabeli}} - szablon do generowania tabeli z ułatwionym wprowadzaniem treści kolumny z liczba porządkową.
==== Szablony opisujące coś ====
* {{s|EfektKodów}} - szablon używamy do przedstawienia kodu i jego zastosowania, wraz z jego wynikiem.
* {{s|OpisKsiążek}} - szablon służy do podawania nazwy strony w przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz w przestrzeni {{Np|Template|link=tak}} i {{Np|Module|link=tak}} używając kolejno szablonów {{s|S}} i {{s|M}}, lub podając nazwę linku, który jest wyświetlany jak zwykły link (nie jak szablon lub moduł - bez użycia tych szablonów) przy użyciu szablonu {{s|ly}}, wraz z ich opisami. Można też podać alternatywną wyświetlaną nazwę strony. Pozycje tych stron są numerowane.
== Szablony czasu ==
* {{s|Czas}} - szablon służy do do wyświetlania sformatowanego czasu.
* {{s|Data wydania}} - zwraca datę wydania dzieła i liczbę dni, miesięcy lub lat która od tej daty upłynęła.
* {{s|Dts}} - szablon jest używany, aby prawidłowo sortować daty w tabelach. Daty w tabelach są prawidłowo sortowane wyłącznie, gdy podane są w formacie rok-miesiąc-dzień, który nie jest powszechnie używany.
* {{s|Dzień gregoriański}} - szablon zwraca liczbę dni gregoriańskich jakie upłynęły od pierwszego roku pierwszego miesiąca i dnia.
* {{s|ISYEARLEAP}} - szablon zwraca "1", jeśli rok podany jako pierwszy parametr jest przestępny oraz "0" w przeciwnym wypadku.
* {{s|Lat lub miesięcy temu}} - zwraca liczbę miesięcy lub lat ile upłynęło od podanej daty.
* {{s|MONTHMIA}} - szablon zwraca nazwę miesiąca w mianowniku.
* {{s|MONTHMSC}} - szablon zwraca nazwę miesiąca w miejscowniku.
* {{s|MONTHNAME}} - zwraca nazwę miesiąca w dopełniaczu dla parametru numer miesiąca.
* {{s|MONTHNUMBER}} - szablon zwraca numer miesiąca dla parametru nazwa miesiąca.
* {{s|NUMBEROFDAYS}} - szablon zwraca liczbę dni w miesiącu.
* {{s|Wiek w dniach}} - zwraca liczbę dni pomiędzy dwoma datami.
=== Ramy czasowe (głosowanie) i wkład użytkownika ===
* {{s|Głosowanie}}, {{s|Głosowanie2}} - {{s|Ramy czasowe zdarzenia}} - szablony te określają ramy czasowe pomiędzy, którymi odbywa się głosowanie na polskim {{NAZWASERWISU|link=tak|po=ie}}.
** {{s|Głosowanie/include}} - szablon do czasowych zdarzenia głosowania.
** {{s|Głosowanie/wynik}} - szablon potrzebny do przedstawiania wyników głosowania.
** {{s|Ramy czasowe zdarzenia/tabela}} - szablon do zakończonej lub trwającej dyskusji.
** {{s|Ramy czasowe zdarzenia/LSnK}} - szablon (makro) przekształca podaną w sekundach długość trwania odcinka czasu na tekst opisowy.
==== Wkład użytkownika i linki danej strony ====
* {{s|La}}, {{s|Ln}}{{Patrz|ln}}, {{s|Lt}}, {{s|Lx}} i {{s|Sil}} - szablony tworzące zestaw linków do podanego artykułu znajdującego się w przestrzeni głównej (edytuj, dyskusja, historia, linkujące, obserwuj, rejestr).
* {{s|Lw}} - szablon do tworzenia linków do stron Wikipedysty, wkładu i rejestru operacji.
* {{s|LnDNU}} - szablon ten działa tak samo jak {{LinkPatrz|ln}}, ale dodatkowo dodaje stronę do jednej z podkategorii {{lk|Dyskusje nad usuwaniem lub naprawą}} - zgodnie z początkiem nazwy strony.
* {{s|Userscan}} - szablon prezentujący wkład wikipedysty.
* {{s|Użytkownik}} - szablon prezentuje linki danego podręcznika.
* {{s|User-multi}} - szablon pozwala na automatyczne dodanie rozmaitych linków do nazwy użytkownika, w zależności od wybranych opcji może to być na przykład link do licznika edycji, do rejestru stron usuniętych, strony dyskusji itd. Jest bardziej wszechstronną alternatywą dla {{s|Użytkownik}}.
=== Szablony nowych i wyróżnionych podręczników miesiąca oraz szablony głosowania ===
* {{s|Link FA}} - umieszczamy w linkach w indyfikatorze, używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks.
* {{s|NPM}} i {{s|WM}} - kolejno nowych i wyróżnionych podręczników miesiąca.
* {{s|Zwycięzca NPM}} i {{s|Zwycięzca NPM krótki}} - szablony ikony nowych podręczników miesiąca.
* {{s|WM/Info}} i {{s|WM/Info krótkie}} - szablony ikony wyróżnionych książek miesiąca.
* {{s|WM/Zegar}} - zegar głosowania wyróżnionych podręczników miesiąca.
== Szablony do dokumentacji szablonów ==
=== Przykłady tabelkowe pewnego szablonu ===
Przykłady do demonstracji problemów na polskim {{NAZWASERWISU|link=tak}}.
==== Szablony do demonstracji pewnych przykładów ====
* {{s|Lorem ipsum}} - szablon potrzebny do demonstracji różnych aspektów na polskim {{NAZWASERWISU|link=tak|wikipedia=tak|po=ie}}.
==== Szablony przykładów opisujące szablon z różnymi parametrami ====
* {{s|Tabela przykładów użycia szablonów}} - szablon tworzy tabelę z dwoma nagłówkami, tzn.: '''Wywołanie''' i '''Efekt''', a przy parametrze {{Parametr|uwagi|tak}} tworzy trzeci nagłówek: '''Uwagi'''.
* {{s|Przykład użycia szablonu w tabeli}} - szablon tworzy tabelkę zawierającą przykłady wywołań szablonu do wstawienia na stronę opisu szablonu.
* {{s|Tytuł strony z szablonem}} - szablon podaje nazwę strony aktualnie opisywanego szablonu
=== Szablony dokumentacji ===
* {{s|Dokumentacja}} i {{s|Podstrona dokumentacji}} - szablony dokumentacji szablonu (ten pierwszy) i opisu (ten drugi).
** {{s|Dokumentacja/preload}} - strona (szablon) do ładowania przykładowego opisu do stworzenia nowego opisu dokumentacji.
* {{s|Kwestie techniczne}} - szablon do zgłaszania problemów technicznych przez użytkownika.
* {{s|Strukturyzacja Wizualnego Edytora}} - szablon, który definiuje parametry i jakie typy możliwe on obsługuje, do Wizualnego Edytora (VE).
* {{s|Klasyfikacja modułu}} - szablon używany do klasyfikacji {{lpg|Lua|modułów Lua}} według ich wersji rozwojowych.
==== Dokumentacja szablonów szablonów ====
* {{s|Lua}} - szablon powiadamiający, że dany szablon korzysta z modułów {{lpr|Lua}} w {{lpr|Lua|Scribunto}}.
* {{s|Dostępność}} - szablon służący do oznaczania innych szablonów ze względu na problemy z dostępnością (jeśli nie da się ich wyeliminować) + kilka innych.
* {{s|Uniwersalny szablon językowy}} - uniwersalny szablon do tworzenia kolorowych ramek do podręczników do nauki języków obcych.
* {{s|Używa Wikidane}} - szablon informujące w nagłówku dokumentacji, że szablon używa elementów WikiDane.
* {{s|Wysokie ryzyko}} - szablon jest używany informacyjnie i ostrzegawczo w innych szablonach, które ze względu na częste używanie, poziom komplikacji kodu lub znaczenie systemowe powinny być zmieniane z większą niż zwykle rozwagą i starannością.
== Szablony dokumentacji funkcji {{NAZWASERWISU|link=tak}} ==
=== Szablony dokumentacji systemowej {{s|Man}} ===
* {{s|Man}} - szablon wyświetlający internetową pomoc systemu {{lpg|Man}}.
* {{s|PosixMan}} - szablon wyświetlający funkcje systemowe w standardzie {{lpg|POSIX}}.
* {{s|KernelMan}} - szablon wyświetlający pomoc internetową systemową funkcji jądra systemu operacyjnego.
=== Szablony dokumentacji {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
* {{s|LzLua}} - szablon link odnoszących sie do pewnych punków, którym są definicje funkcji na stronie tej dokumentacji.
== Formatowanie ramek ==
* {{s|Pokaż}} i {{s|Tabela nawigacyjna}} - tabela z ukrywanym lub pokazanym fragmentem tekstu.
* {{s|Show}} i {{s|Ramka nawigacyjna}} - ramka oparta o warstwy {{Tag|div}} z ukrywanym lub pokazywanym fragmentem tekstem.
** {{s|Show/W tabelach}} - przykład użycia szablonu {{s|Show}}.
* Menu stworzone o szablon {{s|Tabela nawigacyjna}}:
** {{s|Menu listy pozycji kategorii}} - szablon do tworzenia menu listy pozycji danej kategorii.
** Szablony stworzone o szablon {{s|Menu listy pozycji kategorii}}:
*** {{s|Menu listy kategorii portali}} - szablon do tworzenia menu listy kategorii tematycznych podręcznikowych kategorii: {{lk|Podręczniki według portalu}}.
*** {{s|Menu listy kategorii statusu}} - szablon wyświetlający menu listy kategorii statusu ukończenia poszczególnych podręczników kategorii: {{lk|Podręczniki według statusu}}.
*** {{s|Menu listy kategorii poziomu}} - szablon wyświetlający menu listy kategorii poziomu kształcenia poszczególnych podręczników kategorii: {{lk|Podręczniki według poziomu}}.
*** {{s|Menu listy kategorii tematycznych}} - szablon do tworzenia menu listy kategorii tematycznych podręcznikowych kategorii {{lk|Podręczniki według tematu}}.
*** {{s|Menu listy kategorii Światy dla dzieci}} - szablon wyświetla menu listy kategorii: {{lk|Wikijunior:Światy dla dzieci}}, dzielący książki dla dzieci według tematu, którą one dotyczą.
== Szablony do obliczeń matematycznych ==
* {{s|Jeśli równe}} - szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą.
* {{s|Liczba z absolutną jednostką długości}} - szablon sprawdza, czy liczba jest podana z absolutną jednostką długości, jeżeli jest podana, to zwraca tą liczbę, a jeżeli nie, to zwraca tą liczbę z jednostką długości {{Code|px}}.
* {{s|Maksimum}} i {{s|Max}} (przekierowanie do tego ostatniego) - szablony do liczenia maksimum z dwóch podanych liczb ewentualnie z jednostkami długości.
* {{s|Minimum}} i {{s|Min}} (przekierowanie do tego ostatniego) - szablony do liczenia minimum z dwóch podanych liczb ewentualnie z jednostkami długości.
* {{s|W pikselach}} - szablon przelicza długości, w jednostkach bezwzględnych lub liczby, na piksele oznaczone symbolicznie (skrótowo), czyli jako ({{Code|px}}), przestawiając je jako liczby w pikselach bez jednostek.
=== Szablony funkcji matematycznych ===
* {{s|Ogranicz}} - funkcja sprawdza wartość pierwszego parametru i jeżeli jest on większy od parametru "max" (domyślnie 240) lub mniejszy od parametru "min" (domyślnie 60) to jako wynik podaje odpowiednią z tych wartości. Jeżeli pierwszy parametr mieści się w tych granicach to jest zwracany bez zmian. Jeżeli pierwszy parametr nie jest liczbą, to jest zwracana wartość parametru "default" (domyślnie 240).
* {{s|Void}} - szablon pusty do skomplikowanych rozwiązań technicznych.
=== Szablony warunkowe ===
==== Szablony porównań ====
* {{s|Jeśli równe}} - szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą.
* {{s|Jeśli większe}} - szablon sprawdza rozmiary bezwzględne, czy pierwsza wartość jest większa od drugiej, wtedy zwraca niepustą wartość.
==== Szablony typowo warunkowe ====
* {{s|Jeśli niepuste}} - szablon przyjmuje dwa parametry, jeśli pierwszy parametr jest niepusty, wtedy zwraca ten parametr z odpowiednim przedrostkiem lub przedrostkiem i ewentualnie otoczona znacznikami.
* {{s|Jeśli niepuste komunikat}} - szablon używamy do wyświetlania komunikatu, jeśli jest niepusty pierwszy parametr tego szablonu, w przeciwnym przypadku wyświetla trzeci parametr.
==== Szablony istnienia ====
* {{s|Jeśli istnieje}} - szablon przyjmuje dwa parametry numerowane i trzeci, czyli: przedrostek, do pierwszego argumentu w warunku, by tym sprawdzić, czy strona istnieje, a jak tak - to wyświetla się jego pierwszy argument, przeciwnie - drugi.
==== Inne szablony ====
* {{s|Pierwszy niepusty}} - szablon wyświetla pierwszy niepusty element z podanych argumentów, ewentualnie względem zmiennej testowej.
== Artykuły bez infoboksu ==
* {{s|Bez infoboksu}} i {{s|Potrzebne infoboksy}} - szablony, ten pierwszy jest wstawiany na strony dyskusji artykułu, gdy na stronie w przestrzeni {{Np|(main)|link=tak}} lub {{Np|Wikijunior|link=tak}} nie ma tam ściśle określonego infoboksu, a ten drugi jest wstawiany na strony w przestrzeni {{Np|Category|link=tak}} na odpowiednią stronę, która ma zgłaszać, czy ta kategoria jest pusta, czy nie, w tych dwóch przypadkach rodzic kategorii jest inny.
== Szablony ikon ==
* {{s|Ikona}} - ten szablon tworzy wbudowane ikony, które używane są na {{lpr|Metastrony|metastronach}} polskojęzycznej Wikibooks.
== Ramki pudełkowe ==
* {{s|W skrócie}} - ten szablon powinien prezentować streszczenie {{lr|Zasady|zasad Wikibooks}}.
== Szablony pomocy ==
* {{s|Pomagam}} - szablon przeznaczony jest dla doświadczonych użytkowników, którzy chcą pomóc w rozwiązywaniu problemów początkujących wikipedystów.
* {{s|Pomocy}} - szablon wstawia się, wpisując na swojej stronie poniższy tekst: {{s|Pomocy}} lub {{s|Pomocy|Treść problemu}} .
== Strony testowe szablonów ==
* {{s|Przypadek testowy}} - szablon generuje tabelę stosowaną na {{lpr|Brudnopisy i strony testowe szablonów|stronach testowych szablonów}}, która zestawia obok siebie dwie wersje szablonów – szablon główny i jego wersję z brudnopisu.
== Blokada Fundacji Wikimedia na wszystkie jego projekty ==
* {{s|Blokada WMF}} - użycie w przypadku blokad nałożonych przez Fundację Wikimedia.
== Strony z magicznymi linkami ==
* {{s|ISBN}} - szablon magicznego linku ''' ISBN ''' wykorzystujący moduł {{m|ISBN}}.
== Szablony operacji na ciągach (łańcuchach) wykorzystujące moduł {{m|String}} ==
* {{s|Długość}} - zwraca długość podanego ciągu.
* {{s|Subciąg}} - wycina fragment od wybranej pozycji o określonej długości. Parametrami jest odkąd dokąd zwracamy subciąg z tego ciągu.
* {{s|Subciąg2}} - wycina fragment od wybranej pozycji o określonej długości. Parametrami jest odkąd zwracamy subciąg w ciągu, i o jakiej długości.
* {{s|Dopasuj}} - znajdź pasujące w wyszukanym ciągu według wyrażenia regularnego.
* {{s|Pobierz}} - pobierz N-ty znak ciągu.
* {{s|Znajdź}} - zwraca pozycję określonego fragmentu w przeszukiwanym ciągu.
* {{s|Zastąp}} - zamienia w tekście w ciągu pewne podciągi (za pomocą wyrażenia regularnego) na inne.
* {{s|Powtórz}} - szablon powtarza ciąg przez podaną ileś razy.
* {{s|Łącz}} - szablon łączy podane ciągi za pomocą łącznika.
== Szablony parsera tag ==
* {{s|FormularzWejścia}} - szablon służy do tworzenia formularzy wejścia.
* {{s|ListaKategorii}} - szablon wyświetlający listę kategorii.
* {{s|MapaObrazu}} - szablon do wyświetlania mapy obrazu, o odpowiedniej wielkości, z linkiem lub linkami, na niej.
== Szablony ujednoznacznień ==
* {{s|Inne znaczenia}} - szablon informujący o różnych znaczeniach danego pojęcia.
* {{s|Nie mylić z}} - szablon wykorzystywany w przypadku książek o bardzo podobnych nazwach, a innych podobnych znaczeniach.
* {{s|Przekierowanie}} - szablon powinien być wstawiany na stronie, do których istnieje przekierowanie, które z kolei posiada jeszcze własną {{lpr|Strona ujednoznaczniająca|stronę ujednoznaczniającą}}.
* {{s|Ujednoznacznienie}} - szablon ten umieszcza się na stronach ujednoznaczniających. Efektem umieszczenia szablonu jest wyświetlenie krótkiej informacji
== Strony umieszczane na stronach kategorii ==
* {{s|Kategoria dla kategorii}}, {{s|Kategorie tematyczne}} i {{s|Metakategoria}} - szablony wstawiane na strony kategorii mówiące kolejno, że pierwsza kategoria zawiera tylko kategorie, kategorie tematyczne lub jest tylko metakategorią, czyli grupujące strony według ich statusu technicznego.
* {{s|Opis kategorii}} i {{s|Opis kategorii 2}} - szablony opisu kategorii, mający jeszcze dalsze funkcje ten pierwszy, np. wstawia niektóre szablony według jego definicji, czyli on informuje coś o kategorii, a ten drugi szablon ma podstawowe funkcje.
== Szablony wyświetlające zawartość strony ==
=== Szablony wyświetlające strony ===
* {{s|ArtykułSubst}} - szablon do ładowania artykułów innych niż aktualny artykuł w danej książce. Też jest możliwe przestawienie tego szablonu, by wyświetlał pełną nazwę artykułu lub książki.
=== Strony zbiorcze ===
* {{s|StronaSubst}} - szablon do wyświetlania zestawu wszystkich artykułów książki w formie zestawu za pomocą JavaScript.
* {{S|KsiążkaSubst}} - szablon drukuje pełną zawartość wszystkich artykułów aktualnej książki, gdy nazwa bazowa artykułu jest równa nazwie książki lub gdy jego subnazwa jest "Wersja do druku". Gdy subnazwa artykułu jest równa rozdziałowi na stronie głównej książki, to szablon drukuje wszystkie zawartości wszystkie zawartości artykułu należące do tego rozdziału.
=== Zawartości stron ===
* {{s|LuaSubst}} - szablon służy do wyświetlania zawartości kodów języka {{lpr|Lua}}, {{lpg|JavaScript}}, {{lpg|CSS}} i wikikodu, które są dostępne na stronach tego projektu.
== Szablony wyświetlające kod w językach komputerowych ==
* {{s|ŹródłoKodu}} - szablon służy do wyświetlania składni kodu w ramce, generowane przez inne szablony, np. przez szablon {{s|LuaSubst}}. A poniższe szablony wykorzystują go jako kombajn:
** {{s|ŹródłoXml}} - szablon kolorujący składnię kodu w języku skryptowym XML.
** {{s|ŹródłoHtml}} - szablon kolorujący składnię kodu w języku skryptowym HTML.
** {{s|ŹródłoCss}} - szablon kolorujący składnię kodu w języku kaskadowych arkuszy stylów CSS.
== Szablony zaawansowane linków ==
* {{s|WydobądźLinki}} - szablon wydobywa linki wewnętrzne i zewnętrzne z linków, kategorii i rozwiniętego wikikodu, czy HTML - wykorzystujący moduł {{m|StronicowyParser}}.
* {{s|Odnośnik}} - szablon po użyciu generuje odnośnik do pozycji literaturowej w formie żółtego dymku.
=== Szablony linków do baz danych ===
* {{s|ISSN}} - dla publikacji identyfikowanych za pomocą {{lpg|International Standard Serial Number}} (ISSN) 1234-5678.
* {{s|CAS}} - szablon służy do linkowania {{lpg|numer CAS|numeru CAS}} do {{lz|s=https://tools.wmflabs.org/magnustools/cas.php|c=language=pl&cas=|n=wyszukiwarki po numerze CAS}}, zwłaszcza w parametrach {{Code|numer CAS}} w {{s|Białko infobox}}, {{s|Pierwiastek infobox}} i {{s|Związek chemiczny infobox}}.
* {{s|CELEX}} - szablon służy do automatycznego generowania linków do systemu {{lpg|EUR-Lex}} Przy jego użyciu tworzy się linki do stron zwracających wyniki z wyszukiwania przy użyciu numeru {{lpg|CELEX}}.
* {{s|EUR-Lex}} - szablon służy do automatycznego generowania linków do oficjalnego systemu informacji prawnej Unii Europejskiej {{lpg|EUR-Lex}}. Przy jego użyciu tworzy się linki do podstron zawierających informacje o konkretnych dyrektywach, rozporządzeniach lub innych ogłoszonych aktach unijnych.
== Specjalistyczne szablony linków ==
* {{s|Top}} - szablon generuje link, który po kliknięciu na niego, jesteśmy przeniesieni na górę strony.
== Szablony publikacyjne ==
==== Akty prawne - {{lpg|Internetowy System Aktów Prawnych}} ====
Szablony służące do automatycznego generowania linków {{lpg|Internetowy System Aktów Prawnych|Internetowego Systemu Aktów Prawnych Sejmu RP}}:
* {{s|Dziennik Ustaw}} - przy jego użyciu tworzy się linki do podstron zawierających informacje o konkretnych ustawach, rozporządzeniach lub innych aktach normatywnych.
* {{s|Monitor Polski}} - przy jego użyciu tworzy się linki do podstron zawierających informacje o konkretnych aktach prawnych.
==== Szablony pomocnicze do wyświetlania szablonów typu {{S|Dziennik Ustaw}} i {{S|Monitor Polski}} ====
* {{s|Adres publikacyjny}}, {{s|Internetowy System Aktów Prawnych}} i {{s|Publikator}} - szablony pomocnicze do wyświetlania aktów prawnych w tego typu szablonach.
== Szablony pozwoleń i zgłoszeń ==
=== Szablony pozwoleń ===
* {{s|OTRS}} - szablon informuje, że pozwolenie na wykorzystanie materiałów użytych na stronie zostały udzielone, a zarchiwizowane jest w OTRS pod pewnym numerem.
=== Szablon statusu ===
* {{s|Status zgłoszenia}} - status realizowanych zadań, podzielone na różne wybieralne ścisłe kategorie.
== Szablony specjalistyczne podręcznikowe ==
* {{s|Rozmieniarka}} - szablon do rozmieniania pieniędzy.
{{BrClear}}
<noinclude>{{UnikatowaStronaKoniec}}{{Kategoria|Tekstowe opisy techniczne szablonów}}</noinclude>
gqz9vwv4ycvwrrcys4m50sv0ihuypmv
557829
557828
2026-09-28T18:05:22Z
Persino
2851
/* Szablony warunkowe */
557829
wikitext
text/x-wiki
<noinclude><!--
-->{{UnikatowaStronaStart
| nagłówek = {{Podrozdział|Pomoc Wikibooks - Szablony}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
== Szablony pudełek formatujące tekst ==
* {{s|---}} - szablon powoduje wstawienie w treść dokumentu kreski, zbudowany przy pomocy znacznika {{Tag|hr|pojedynczy}}.
----
* {{s|F}} i {{s|F*}} - szablony, blokowego (ten pierwszy) i liniowego (ten drugi), do formatowania tekstu.
* {{s|Kapitaliki}} i {{s|Kap}} (przekierowanie do tego ostatniego) - szablon przekształca tekst na tekst pisany kapitalikami.
* {{s|Rozstrzelony}} i {{s|Roz}} - szablon powoduje rozstrzelenie liter w tekście.
* {{s|Un}} - szablon wyświetla tekst podkreślony, zastępuje tag {{Tag|u}}, który nie powinien być używany do podkreślonego tekstu ze względu na jego zdeprecjonowanie w HTML 4.01. oraz zmianę znaczenia w HTML 5.
----
* {{s|Centruj}} i {{s|Ce}} (przekierowanie do tego ostatniego) - szablony powodujące wycentrowania jednej lub kilku linii tekstu.
* {{s|CentrujStart}} i {{s|CentrujKoniec}} - szablony, otwierający i zamykające, co pomiędzy nimi jest tekst, który należy wycentrować.
* {{s|CentrujStart2}} i {{s|CentrujKoniec2}} - szablon, otwierający i zamykający, zbudowany w oparciu o tabelkę, z marginesami, tzn. lewym i prawym, automatycznymi, o określonym rozmiarze.
* {{s|Ruby}} i {{s|Ruby2}} - szablony wyświetlające tekst nad znakami tekstu jakiś inny tekst, a za nim jest jeszcze znów inny tekst.
* {{s|Tab}} - szablon używany do tworzenia wcięć pierwszej linii akapitu.
----
* {{s|Summary}} - szablon przeznaczony do używania na stronach indeksowych, obejmuje spis treści stron z przestrzeni głównej, które mają być pobrane do epuba i wyszczególnione w epub-owym spisie treści jako osobna pozycja.
* {{s|Tryb ciemny}} - szablon służy do przełączania pomiędzy dwoma alternatywnymi wersjami tekstu – wersją główną, dostosowaną do trybu jasnego i wersją pomocniczą dostosowaną do trybu ciemnego.
* {{s|JustowanieStart}} i {{s|JustowanieKoniec}}, {{s|JustowanieStart2}} i {{s|JustowanieKoniec2}} - szablony startowe i zamykające do justowania tekstu.
=== Szablony z zawartością ===
* {{s|Dane tekstu}} - zawiera informacje na temat całej pracy (podręcznika) i jego podartykułów na każdej jego stronie.
* {{s|Numerowanie w tabeli}} - szablon do generowania tabeli z ułatwionym wprowadzaniem treści kolumny z liczba porządkową.
==== Szablony opisujące coś ====
* {{s|EfektKodów}} - szablon używamy do przedstawienia kodu i jego zastosowania, wraz z jego wynikiem.
* {{s|OpisKsiążek}} - szablon służy do podawania nazwy strony w przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz w przestrzeni {{Np|Template|link=tak}} i {{Np|Module|link=tak}} używając kolejno szablonów {{s|S}} i {{s|M}}, lub podając nazwę linku, który jest wyświetlany jak zwykły link (nie jak szablon lub moduł - bez użycia tych szablonów) przy użyciu szablonu {{s|ly}}, wraz z ich opisami. Można też podać alternatywną wyświetlaną nazwę strony. Pozycje tych stron są numerowane.
== Szablony czasu ==
* {{s|Czas}} - szablon służy do do wyświetlania sformatowanego czasu.
* {{s|Data wydania}} - zwraca datę wydania dzieła i liczbę dni, miesięcy lub lat która od tej daty upłynęła.
* {{s|Dts}} - szablon jest używany, aby prawidłowo sortować daty w tabelach. Daty w tabelach są prawidłowo sortowane wyłącznie, gdy podane są w formacie rok-miesiąc-dzień, który nie jest powszechnie używany.
* {{s|Dzień gregoriański}} - szablon zwraca liczbę dni gregoriańskich jakie upłynęły od pierwszego roku pierwszego miesiąca i dnia.
* {{s|ISYEARLEAP}} - szablon zwraca "1", jeśli rok podany jako pierwszy parametr jest przestępny oraz "0" w przeciwnym wypadku.
* {{s|Lat lub miesięcy temu}} - zwraca liczbę miesięcy lub lat ile upłynęło od podanej daty.
* {{s|MONTHMIA}} - szablon zwraca nazwę miesiąca w mianowniku.
* {{s|MONTHMSC}} - szablon zwraca nazwę miesiąca w miejscowniku.
* {{s|MONTHNAME}} - zwraca nazwę miesiąca w dopełniaczu dla parametru numer miesiąca.
* {{s|MONTHNUMBER}} - szablon zwraca numer miesiąca dla parametru nazwa miesiąca.
* {{s|NUMBEROFDAYS}} - szablon zwraca liczbę dni w miesiącu.
* {{s|Wiek w dniach}} - zwraca liczbę dni pomiędzy dwoma datami.
=== Ramy czasowe (głosowanie) i wkład użytkownika ===
* {{s|Głosowanie}}, {{s|Głosowanie2}} - {{s|Ramy czasowe zdarzenia}} - szablony te określają ramy czasowe pomiędzy, którymi odbywa się głosowanie na polskim {{NAZWASERWISU|link=tak|po=ie}}.
** {{s|Głosowanie/include}} - szablon do czasowych zdarzenia głosowania.
** {{s|Głosowanie/wynik}} - szablon potrzebny do przedstawiania wyników głosowania.
** {{s|Ramy czasowe zdarzenia/tabela}} - szablon do zakończonej lub trwającej dyskusji.
** {{s|Ramy czasowe zdarzenia/LSnK}} - szablon (makro) przekształca podaną w sekundach długość trwania odcinka czasu na tekst opisowy.
==== Wkład użytkownika i linki danej strony ====
* {{s|La}}, {{s|Ln}}{{Patrz|ln}}, {{s|Lt}}, {{s|Lx}} i {{s|Sil}} - szablony tworzące zestaw linków do podanego artykułu znajdującego się w przestrzeni głównej (edytuj, dyskusja, historia, linkujące, obserwuj, rejestr).
* {{s|Lw}} - szablon do tworzenia linków do stron Wikipedysty, wkładu i rejestru operacji.
* {{s|LnDNU}} - szablon ten działa tak samo jak {{LinkPatrz|ln}}, ale dodatkowo dodaje stronę do jednej z podkategorii {{lk|Dyskusje nad usuwaniem lub naprawą}} - zgodnie z początkiem nazwy strony.
* {{s|Userscan}} - szablon prezentujący wkład wikipedysty.
* {{s|Użytkownik}} - szablon prezentuje linki danego podręcznika.
* {{s|User-multi}} - szablon pozwala na automatyczne dodanie rozmaitych linków do nazwy użytkownika, w zależności od wybranych opcji może to być na przykład link do licznika edycji, do rejestru stron usuniętych, strony dyskusji itd. Jest bardziej wszechstronną alternatywą dla {{s|Użytkownik}}.
=== Szablony nowych i wyróżnionych podręczników miesiąca oraz szablony głosowania ===
* {{s|Link FA}} - umieszczamy w linkach w indyfikatorze, używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks.
* {{s|NPM}} i {{s|WM}} - kolejno nowych i wyróżnionych podręczników miesiąca.
* {{s|Zwycięzca NPM}} i {{s|Zwycięzca NPM krótki}} - szablony ikony nowych podręczników miesiąca.
* {{s|WM/Info}} i {{s|WM/Info krótkie}} - szablony ikony wyróżnionych książek miesiąca.
* {{s|WM/Zegar}} - zegar głosowania wyróżnionych podręczników miesiąca.
== Szablony do dokumentacji szablonów ==
=== Przykłady tabelkowe pewnego szablonu ===
Przykłady do demonstracji problemów na polskim {{NAZWASERWISU|link=tak}}.
==== Szablony do demonstracji pewnych przykładów ====
* {{s|Lorem ipsum}} - szablon potrzebny do demonstracji różnych aspektów na polskim {{NAZWASERWISU|link=tak|wikipedia=tak|po=ie}}.
==== Szablony przykładów opisujące szablon z różnymi parametrami ====
* {{s|Tabela przykładów użycia szablonów}} - szablon tworzy tabelę z dwoma nagłówkami, tzn.: '''Wywołanie''' i '''Efekt''', a przy parametrze {{Parametr|uwagi|tak}} tworzy trzeci nagłówek: '''Uwagi'''.
* {{s|Przykład użycia szablonu w tabeli}} - szablon tworzy tabelkę zawierającą przykłady wywołań szablonu do wstawienia na stronę opisu szablonu.
* {{s|Tytuł strony z szablonem}} - szablon podaje nazwę strony aktualnie opisywanego szablonu
=== Szablony dokumentacji ===
* {{s|Dokumentacja}} i {{s|Podstrona dokumentacji}} - szablony dokumentacji szablonu (ten pierwszy) i opisu (ten drugi).
** {{s|Dokumentacja/preload}} - strona (szablon) do ładowania przykładowego opisu do stworzenia nowego opisu dokumentacji.
* {{s|Kwestie techniczne}} - szablon do zgłaszania problemów technicznych przez użytkownika.
* {{s|Strukturyzacja Wizualnego Edytora}} - szablon, który definiuje parametry i jakie typy możliwe on obsługuje, do Wizualnego Edytora (VE).
* {{s|Klasyfikacja modułu}} - szablon używany do klasyfikacji {{lpg|Lua|modułów Lua}} według ich wersji rozwojowych.
==== Dokumentacja szablonów szablonów ====
* {{s|Lua}} - szablon powiadamiający, że dany szablon korzysta z modułów {{lpr|Lua}} w {{lpr|Lua|Scribunto}}.
* {{s|Dostępność}} - szablon służący do oznaczania innych szablonów ze względu na problemy z dostępnością (jeśli nie da się ich wyeliminować) + kilka innych.
* {{s|Uniwersalny szablon językowy}} - uniwersalny szablon do tworzenia kolorowych ramek do podręczników do nauki języków obcych.
* {{s|Używa Wikidane}} - szablon informujące w nagłówku dokumentacji, że szablon używa elementów WikiDane.
* {{s|Wysokie ryzyko}} - szablon jest używany informacyjnie i ostrzegawczo w innych szablonach, które ze względu na częste używanie, poziom komplikacji kodu lub znaczenie systemowe powinny być zmieniane z większą niż zwykle rozwagą i starannością.
== Szablony dokumentacji funkcji {{NAZWASERWISU|link=tak}} ==
=== Szablony dokumentacji systemowej {{s|Man}} ===
* {{s|Man}} - szablon wyświetlający internetową pomoc systemu {{lpg|Man}}.
* {{s|PosixMan}} - szablon wyświetlający funkcje systemowe w standardzie {{lpg|POSIX}}.
* {{s|KernelMan}} - szablon wyświetlający pomoc internetową systemową funkcji jądra systemu operacyjnego.
=== Szablony dokumentacji {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
* {{s|LzLua}} - szablon link odnoszących sie do pewnych punków, którym są definicje funkcji na stronie tej dokumentacji.
== Formatowanie ramek ==
* {{s|Pokaż}} i {{s|Tabela nawigacyjna}} - tabela z ukrywanym lub pokazanym fragmentem tekstu.
* {{s|Show}} i {{s|Ramka nawigacyjna}} - ramka oparta o warstwy {{Tag|div}} z ukrywanym lub pokazywanym fragmentem tekstem.
** {{s|Show/W tabelach}} - przykład użycia szablonu {{s|Show}}.
* Menu stworzone o szablon {{s|Tabela nawigacyjna}}:
** {{s|Menu listy pozycji kategorii}} - szablon do tworzenia menu listy pozycji danej kategorii.
** Szablony stworzone o szablon {{s|Menu listy pozycji kategorii}}:
*** {{s|Menu listy kategorii portali}} - szablon do tworzenia menu listy kategorii tematycznych podręcznikowych kategorii: {{lk|Podręczniki według portalu}}.
*** {{s|Menu listy kategorii statusu}} - szablon wyświetlający menu listy kategorii statusu ukończenia poszczególnych podręczników kategorii: {{lk|Podręczniki według statusu}}.
*** {{s|Menu listy kategorii poziomu}} - szablon wyświetlający menu listy kategorii poziomu kształcenia poszczególnych podręczników kategorii: {{lk|Podręczniki według poziomu}}.
*** {{s|Menu listy kategorii tematycznych}} - szablon do tworzenia menu listy kategorii tematycznych podręcznikowych kategorii {{lk|Podręczniki według tematu}}.
*** {{s|Menu listy kategorii Światy dla dzieci}} - szablon wyświetla menu listy kategorii: {{lk|Wikijunior:Światy dla dzieci}}, dzielący książki dla dzieci według tematu, którą one dotyczą.
== Szablony do obliczeń matematycznych ==
* {{s|Jeśli równe}} - szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą.
* {{s|Liczba z absolutną jednostką długości}} - szablon sprawdza, czy liczba jest podana z absolutną jednostką długości, jeżeli jest podana, to zwraca tą liczbę, a jeżeli nie, to zwraca tą liczbę z jednostką długości {{Code|px}}.
* {{s|Maksimum}} i {{s|Max}} (przekierowanie do tego ostatniego) - szablony do liczenia maksimum z dwóch podanych liczb ewentualnie z jednostkami długości.
* {{s|Minimum}} i {{s|Min}} (przekierowanie do tego ostatniego) - szablony do liczenia minimum z dwóch podanych liczb ewentualnie z jednostkami długości.
* {{s|W pikselach}} - szablon przelicza długości, w jednostkach bezwzględnych lub liczby, na piksele oznaczone symbolicznie (skrótowo), czyli jako ({{Code|px}}), przestawiając je jako liczby w pikselach bez jednostek.
=== Szablony funkcji matematycznych ===
* {{s|Ogranicz}} - funkcja sprawdza wartość pierwszego parametru i jeżeli jest on większy od parametru "max" (domyślnie 240) lub mniejszy od parametru "min" (domyślnie 60) to jako wynik podaje odpowiednią z tych wartości. Jeżeli pierwszy parametr mieści się w tych granicach to jest zwracany bez zmian. Jeżeli pierwszy parametr nie jest liczbą, to jest zwracana wartość parametru "default" (domyślnie 240).
* {{s|Void}} - szablon pusty do skomplikowanych rozwiązań technicznych.
=== Szablony warunkowe ===
Są to szablonu warunkowe, wybierania, pierwszego lub drugiego, albo dalszego, w przypadku innych szablonów.
==== Szablony porównań ====
* {{s|Jeśli równe}} - szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą.
* {{s|Jeśli większe}} - szablon sprawdza rozmiary bezwzględne, czy pierwsza wartość jest większa od drugiej, wtedy zwraca niepustą wartość.
==== Szablony typowo warunkowe ====
* {{s|Jeśli niepuste}} - szablon przyjmuje dwa parametry, jeśli pierwszy parametr jest niepusty, wtedy zwraca ten parametr z odpowiednim przedrostkiem lub przedrostkiem i ewentualnie otoczona znacznikami.
* {{s|Jeśli niepuste komunikat}} - szablon używamy do wyświetlania komunikatu, jeśli jest niepusty pierwszy parametr tego szablonu, w przeciwnym przypadku wyświetla trzeci parametr.
==== Szablony istnienia ====
* {{s|Jeśli istnieje}} - szablon przyjmuje dwa parametry numerowane i trzeci, czyli: przedrostek, do pierwszego argumentu w warunku, by tym sprawdzić, czy strona istnieje, a jak tak - to wyświetla się jego pierwszy argument, przeciwnie - drugi.
==== Inne szablony ====
* {{s|Pierwszy niepusty}} - szablon wyświetla pierwszy niepusty element z podanych argumentów, ewentualnie względem zmiennej testowej.
== Artykuły bez infoboksu ==
* {{s|Bez infoboksu}} i {{s|Potrzebne infoboksy}} - szablony, ten pierwszy jest wstawiany na strony dyskusji artykułu, gdy na stronie w przestrzeni {{Np|(main)|link=tak}} lub {{Np|Wikijunior|link=tak}} nie ma tam ściśle określonego infoboksu, a ten drugi jest wstawiany na strony w przestrzeni {{Np|Category|link=tak}} na odpowiednią stronę, która ma zgłaszać, czy ta kategoria jest pusta, czy nie, w tych dwóch przypadkach rodzic kategorii jest inny.
== Szablony ikon ==
* {{s|Ikona}} - ten szablon tworzy wbudowane ikony, które używane są na {{lpr|Metastrony|metastronach}} polskojęzycznej Wikibooks.
== Ramki pudełkowe ==
* {{s|W skrócie}} - ten szablon powinien prezentować streszczenie {{lr|Zasady|zasad Wikibooks}}.
== Szablony pomocy ==
* {{s|Pomagam}} - szablon przeznaczony jest dla doświadczonych użytkowników, którzy chcą pomóc w rozwiązywaniu problemów początkujących wikipedystów.
* {{s|Pomocy}} - szablon wstawia się, wpisując na swojej stronie poniższy tekst: {{s|Pomocy}} lub {{s|Pomocy|Treść problemu}} .
== Strony testowe szablonów ==
* {{s|Przypadek testowy}} - szablon generuje tabelę stosowaną na {{lpr|Brudnopisy i strony testowe szablonów|stronach testowych szablonów}}, która zestawia obok siebie dwie wersje szablonów – szablon główny i jego wersję z brudnopisu.
== Blokada Fundacji Wikimedia na wszystkie jego projekty ==
* {{s|Blokada WMF}} - użycie w przypadku blokad nałożonych przez Fundację Wikimedia.
== Strony z magicznymi linkami ==
* {{s|ISBN}} - szablon magicznego linku ''' ISBN ''' wykorzystujący moduł {{m|ISBN}}.
== Szablony operacji na ciągach (łańcuchach) wykorzystujące moduł {{m|String}} ==
* {{s|Długość}} - zwraca długość podanego ciągu.
* {{s|Subciąg}} - wycina fragment od wybranej pozycji o określonej długości. Parametrami jest odkąd dokąd zwracamy subciąg z tego ciągu.
* {{s|Subciąg2}} - wycina fragment od wybranej pozycji o określonej długości. Parametrami jest odkąd zwracamy subciąg w ciągu, i o jakiej długości.
* {{s|Dopasuj}} - znajdź pasujące w wyszukanym ciągu według wyrażenia regularnego.
* {{s|Pobierz}} - pobierz N-ty znak ciągu.
* {{s|Znajdź}} - zwraca pozycję określonego fragmentu w przeszukiwanym ciągu.
* {{s|Zastąp}} - zamienia w tekście w ciągu pewne podciągi (za pomocą wyrażenia regularnego) na inne.
* {{s|Powtórz}} - szablon powtarza ciąg przez podaną ileś razy.
* {{s|Łącz}} - szablon łączy podane ciągi za pomocą łącznika.
== Szablony parsera tag ==
* {{s|FormularzWejścia}} - szablon służy do tworzenia formularzy wejścia.
* {{s|ListaKategorii}} - szablon wyświetlający listę kategorii.
* {{s|MapaObrazu}} - szablon do wyświetlania mapy obrazu, o odpowiedniej wielkości, z linkiem lub linkami, na niej.
== Szablony ujednoznacznień ==
* {{s|Inne znaczenia}} - szablon informujący o różnych znaczeniach danego pojęcia.
* {{s|Nie mylić z}} - szablon wykorzystywany w przypadku książek o bardzo podobnych nazwach, a innych podobnych znaczeniach.
* {{s|Przekierowanie}} - szablon powinien być wstawiany na stronie, do których istnieje przekierowanie, które z kolei posiada jeszcze własną {{lpr|Strona ujednoznaczniająca|stronę ujednoznaczniającą}}.
* {{s|Ujednoznacznienie}} - szablon ten umieszcza się na stronach ujednoznaczniających. Efektem umieszczenia szablonu jest wyświetlenie krótkiej informacji
== Strony umieszczane na stronach kategorii ==
* {{s|Kategoria dla kategorii}}, {{s|Kategorie tematyczne}} i {{s|Metakategoria}} - szablony wstawiane na strony kategorii mówiące kolejno, że pierwsza kategoria zawiera tylko kategorie, kategorie tematyczne lub jest tylko metakategorią, czyli grupujące strony według ich statusu technicznego.
* {{s|Opis kategorii}} i {{s|Opis kategorii 2}} - szablony opisu kategorii, mający jeszcze dalsze funkcje ten pierwszy, np. wstawia niektóre szablony według jego definicji, czyli on informuje coś o kategorii, a ten drugi szablon ma podstawowe funkcje.
== Szablony wyświetlające zawartość strony ==
=== Szablony wyświetlające strony ===
* {{s|ArtykułSubst}} - szablon do ładowania artykułów innych niż aktualny artykuł w danej książce. Też jest możliwe przestawienie tego szablonu, by wyświetlał pełną nazwę artykułu lub książki.
=== Strony zbiorcze ===
* {{s|StronaSubst}} - szablon do wyświetlania zestawu wszystkich artykułów książki w formie zestawu za pomocą JavaScript.
* {{S|KsiążkaSubst}} - szablon drukuje pełną zawartość wszystkich artykułów aktualnej książki, gdy nazwa bazowa artykułu jest równa nazwie książki lub gdy jego subnazwa jest "Wersja do druku". Gdy subnazwa artykułu jest równa rozdziałowi na stronie głównej książki, to szablon drukuje wszystkie zawartości wszystkie zawartości artykułu należące do tego rozdziału.
=== Zawartości stron ===
* {{s|LuaSubst}} - szablon służy do wyświetlania zawartości kodów języka {{lpr|Lua}}, {{lpg|JavaScript}}, {{lpg|CSS}} i wikikodu, które są dostępne na stronach tego projektu.
== Szablony wyświetlające kod w językach komputerowych ==
* {{s|ŹródłoKodu}} - szablon służy do wyświetlania składni kodu w ramce, generowane przez inne szablony, np. przez szablon {{s|LuaSubst}}. A poniższe szablony wykorzystują go jako kombajn:
** {{s|ŹródłoXml}} - szablon kolorujący składnię kodu w języku skryptowym XML.
** {{s|ŹródłoHtml}} - szablon kolorujący składnię kodu w języku skryptowym HTML.
** {{s|ŹródłoCss}} - szablon kolorujący składnię kodu w języku kaskadowych arkuszy stylów CSS.
== Szablony zaawansowane linków ==
* {{s|WydobądźLinki}} - szablon wydobywa linki wewnętrzne i zewnętrzne z linków, kategorii i rozwiniętego wikikodu, czy HTML - wykorzystujący moduł {{m|StronicowyParser}}.
* {{s|Odnośnik}} - szablon po użyciu generuje odnośnik do pozycji literaturowej w formie żółtego dymku.
=== Szablony linków do baz danych ===
* {{s|ISSN}} - dla publikacji identyfikowanych za pomocą {{lpg|International Standard Serial Number}} (ISSN) 1234-5678.
* {{s|CAS}} - szablon służy do linkowania {{lpg|numer CAS|numeru CAS}} do {{lz|s=https://tools.wmflabs.org/magnustools/cas.php|c=language=pl&cas=|n=wyszukiwarki po numerze CAS}}, zwłaszcza w parametrach {{Code|numer CAS}} w {{s|Białko infobox}}, {{s|Pierwiastek infobox}} i {{s|Związek chemiczny infobox}}.
* {{s|CELEX}} - szablon służy do automatycznego generowania linków do systemu {{lpg|EUR-Lex}} Przy jego użyciu tworzy się linki do stron zwracających wyniki z wyszukiwania przy użyciu numeru {{lpg|CELEX}}.
* {{s|EUR-Lex}} - szablon służy do automatycznego generowania linków do oficjalnego systemu informacji prawnej Unii Europejskiej {{lpg|EUR-Lex}}. Przy jego użyciu tworzy się linki do podstron zawierających informacje o konkretnych dyrektywach, rozporządzeniach lub innych ogłoszonych aktach unijnych.
== Specjalistyczne szablony linków ==
* {{s|Top}} - szablon generuje link, który po kliknięciu na niego, jesteśmy przeniesieni na górę strony.
== Szablony publikacyjne ==
==== Akty prawne - {{lpg|Internetowy System Aktów Prawnych}} ====
Szablony służące do automatycznego generowania linków {{lpg|Internetowy System Aktów Prawnych|Internetowego Systemu Aktów Prawnych Sejmu RP}}:
* {{s|Dziennik Ustaw}} - przy jego użyciu tworzy się linki do podstron zawierających informacje o konkretnych ustawach, rozporządzeniach lub innych aktach normatywnych.
* {{s|Monitor Polski}} - przy jego użyciu tworzy się linki do podstron zawierających informacje o konkretnych aktach prawnych.
==== Szablony pomocnicze do wyświetlania szablonów typu {{S|Dziennik Ustaw}} i {{S|Monitor Polski}} ====
* {{s|Adres publikacyjny}}, {{s|Internetowy System Aktów Prawnych}} i {{s|Publikator}} - szablony pomocnicze do wyświetlania aktów prawnych w tego typu szablonach.
== Szablony pozwoleń i zgłoszeń ==
=== Szablony pozwoleń ===
* {{s|OTRS}} - szablon informuje, że pozwolenie na wykorzystanie materiałów użytych na stronie zostały udzielone, a zarchiwizowane jest w OTRS pod pewnym numerem.
=== Szablon statusu ===
* {{s|Status zgłoszenia}} - status realizowanych zadań, podzielone na różne wybieralne ścisłe kategorie.
== Szablony specjalistyczne podręcznikowe ==
* {{s|Rozmieniarka}} - szablon do rozmieniania pieniędzy.
{{BrClear}}
<noinclude>{{UnikatowaStronaKoniec}}{{Kategoria|Tekstowe opisy techniczne szablonów}}</noinclude>
6q64jfpot5z4n76jkewc8i5sda7gsjg
557830
557829
2026-09-28T18:20:22Z
Persino
2851
/* Szablony warunkowe */
557830
wikitext
text/x-wiki
<noinclude><!--
-->{{UnikatowaStronaStart
| nagłówek = {{Podrozdział|Pomoc Wikibooks - Szablony}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
== Szablony pudełek formatujące tekst ==
* {{s|---}} - szablon powoduje wstawienie w treść dokumentu kreski, zbudowany przy pomocy znacznika {{Tag|hr|pojedynczy}}.
----
* {{s|F}} i {{s|F*}} - szablony, blokowego (ten pierwszy) i liniowego (ten drugi), do formatowania tekstu.
* {{s|Kapitaliki}} i {{s|Kap}} (przekierowanie do tego ostatniego) - szablon przekształca tekst na tekst pisany kapitalikami.
* {{s|Rozstrzelony}} i {{s|Roz}} - szablon powoduje rozstrzelenie liter w tekście.
* {{s|Un}} - szablon wyświetla tekst podkreślony, zastępuje tag {{Tag|u}}, który nie powinien być używany do podkreślonego tekstu ze względu na jego zdeprecjonowanie w HTML 4.01. oraz zmianę znaczenia w HTML 5.
----
* {{s|Centruj}} i {{s|Ce}} (przekierowanie do tego ostatniego) - szablony powodujące wycentrowania jednej lub kilku linii tekstu.
* {{s|CentrujStart}} i {{s|CentrujKoniec}} - szablony, otwierający i zamykające, co pomiędzy nimi jest tekst, który należy wycentrować.
* {{s|CentrujStart2}} i {{s|CentrujKoniec2}} - szablon, otwierający i zamykający, zbudowany w oparciu o tabelkę, z marginesami, tzn. lewym i prawym, automatycznymi, o określonym rozmiarze.
* {{s|Ruby}} i {{s|Ruby2}} - szablony wyświetlające tekst nad znakami tekstu jakiś inny tekst, a za nim jest jeszcze znów inny tekst.
* {{s|Tab}} - szablon używany do tworzenia wcięć pierwszej linii akapitu.
----
* {{s|Summary}} - szablon przeznaczony do używania na stronach indeksowych, obejmuje spis treści stron z przestrzeni głównej, które mają być pobrane do epuba i wyszczególnione w epub-owym spisie treści jako osobna pozycja.
* {{s|Tryb ciemny}} - szablon służy do przełączania pomiędzy dwoma alternatywnymi wersjami tekstu – wersją główną, dostosowaną do trybu jasnego i wersją pomocniczą dostosowaną do trybu ciemnego.
* {{s|JustowanieStart}} i {{s|JustowanieKoniec}}, {{s|JustowanieStart2}} i {{s|JustowanieKoniec2}} - szablony startowe i zamykające do justowania tekstu.
=== Szablony z zawartością ===
* {{s|Dane tekstu}} - zawiera informacje na temat całej pracy (podręcznika) i jego podartykułów na każdej jego stronie.
* {{s|Numerowanie w tabeli}} - szablon do generowania tabeli z ułatwionym wprowadzaniem treści kolumny z liczba porządkową.
==== Szablony opisujące coś ====
* {{s|EfektKodów}} - szablon używamy do przedstawienia kodu i jego zastosowania, wraz z jego wynikiem.
* {{s|OpisKsiążek}} - szablon służy do podawania nazwy strony w przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz w przestrzeni {{Np|Template|link=tak}} i {{Np|Module|link=tak}} używając kolejno szablonów {{s|S}} i {{s|M}}, lub podając nazwę linku, który jest wyświetlany jak zwykły link (nie jak szablon lub moduł - bez użycia tych szablonów) przy użyciu szablonu {{s|ly}}, wraz z ich opisami. Można też podać alternatywną wyświetlaną nazwę strony. Pozycje tych stron są numerowane.
== Szablony czasu ==
* {{s|Czas}} - szablon służy do do wyświetlania sformatowanego czasu.
* {{s|Data wydania}} - zwraca datę wydania dzieła i liczbę dni, miesięcy lub lat która od tej daty upłynęła.
* {{s|Dts}} - szablon jest używany, aby prawidłowo sortować daty w tabelach. Daty w tabelach są prawidłowo sortowane wyłącznie, gdy podane są w formacie rok-miesiąc-dzień, który nie jest powszechnie używany.
* {{s|Dzień gregoriański}} - szablon zwraca liczbę dni gregoriańskich jakie upłynęły od pierwszego roku pierwszego miesiąca i dnia.
* {{s|ISYEARLEAP}} - szablon zwraca "1", jeśli rok podany jako pierwszy parametr jest przestępny oraz "0" w przeciwnym wypadku.
* {{s|Lat lub miesięcy temu}} - zwraca liczbę miesięcy lub lat ile upłynęło od podanej daty.
* {{s|MONTHMIA}} - szablon zwraca nazwę miesiąca w mianowniku.
* {{s|MONTHMSC}} - szablon zwraca nazwę miesiąca w miejscowniku.
* {{s|MONTHNAME}} - zwraca nazwę miesiąca w dopełniaczu dla parametru numer miesiąca.
* {{s|MONTHNUMBER}} - szablon zwraca numer miesiąca dla parametru nazwa miesiąca.
* {{s|NUMBEROFDAYS}} - szablon zwraca liczbę dni w miesiącu.
* {{s|Wiek w dniach}} - zwraca liczbę dni pomiędzy dwoma datami.
=== Ramy czasowe (głosowanie) i wkład użytkownika ===
* {{s|Głosowanie}}, {{s|Głosowanie2}} - {{s|Ramy czasowe zdarzenia}} - szablony te określają ramy czasowe pomiędzy, którymi odbywa się głosowanie na polskim {{NAZWASERWISU|link=tak|po=ie}}.
** {{s|Głosowanie/include}} - szablon do czasowych zdarzenia głosowania.
** {{s|Głosowanie/wynik}} - szablon potrzebny do przedstawiania wyników głosowania.
** {{s|Ramy czasowe zdarzenia/tabela}} - szablon do zakończonej lub trwającej dyskusji.
** {{s|Ramy czasowe zdarzenia/LSnK}} - szablon (makro) przekształca podaną w sekundach długość trwania odcinka czasu na tekst opisowy.
==== Wkład użytkownika i linki danej strony ====
* {{s|La}}, {{s|Ln}}{{Patrz|ln}}, {{s|Lt}}, {{s|Lx}} i {{s|Sil}} - szablony tworzące zestaw linków do podanego artykułu znajdującego się w przestrzeni głównej (edytuj, dyskusja, historia, linkujące, obserwuj, rejestr).
* {{s|Lw}} - szablon do tworzenia linków do stron Wikipedysty, wkładu i rejestru operacji.
* {{s|LnDNU}} - szablon ten działa tak samo jak {{LinkPatrz|ln}}, ale dodatkowo dodaje stronę do jednej z podkategorii {{lk|Dyskusje nad usuwaniem lub naprawą}} - zgodnie z początkiem nazwy strony.
* {{s|Userscan}} - szablon prezentujący wkład wikipedysty.
* {{s|Użytkownik}} - szablon prezentuje linki danego podręcznika.
* {{s|User-multi}} - szablon pozwala na automatyczne dodanie rozmaitych linków do nazwy użytkownika, w zależności od wybranych opcji może to być na przykład link do licznika edycji, do rejestru stron usuniętych, strony dyskusji itd. Jest bardziej wszechstronną alternatywą dla {{s|Użytkownik}}.
=== Szablony nowych i wyróżnionych podręczników miesiąca oraz szablony głosowania ===
* {{s|Link FA}} - umieszczamy w linkach w indyfikatorze, używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks.
* {{s|NPM}} i {{s|WM}} - kolejno nowych i wyróżnionych podręczników miesiąca.
* {{s|Zwycięzca NPM}} i {{s|Zwycięzca NPM krótki}} - szablony ikony nowych podręczników miesiąca.
* {{s|WM/Info}} i {{s|WM/Info krótkie}} - szablony ikony wyróżnionych książek miesiąca.
* {{s|WM/Zegar}} - zegar głosowania wyróżnionych podręczników miesiąca.
== Szablony do dokumentacji szablonów ==
=== Przykłady tabelkowe pewnego szablonu ===
Przykłady do demonstracji problemów na polskim {{NAZWASERWISU|link=tak}}.
==== Szablony do demonstracji pewnych przykładów ====
* {{s|Lorem ipsum}} - szablon potrzebny do demonstracji różnych aspektów na polskim {{NAZWASERWISU|link=tak|wikipedia=tak|po=ie}}.
==== Szablony przykładów opisujące szablon z różnymi parametrami ====
* {{s|Tabela przykładów użycia szablonów}} - szablon tworzy tabelę z dwoma nagłówkami, tzn.: '''Wywołanie''' i '''Efekt''', a przy parametrze {{Parametr|uwagi|tak}} tworzy trzeci nagłówek: '''Uwagi'''.
* {{s|Przykład użycia szablonu w tabeli}} - szablon tworzy tabelkę zawierającą przykłady wywołań szablonu do wstawienia na stronę opisu szablonu.
* {{s|Tytuł strony z szablonem}} - szablon podaje nazwę strony aktualnie opisywanego szablonu
=== Szablony dokumentacji ===
* {{s|Dokumentacja}} i {{s|Podstrona dokumentacji}} - szablony dokumentacji szablonu (ten pierwszy) i opisu (ten drugi).
** {{s|Dokumentacja/preload}} - strona (szablon) do ładowania przykładowego opisu do stworzenia nowego opisu dokumentacji.
* {{s|Kwestie techniczne}} - szablon do zgłaszania problemów technicznych przez użytkownika.
* {{s|Strukturyzacja Wizualnego Edytora}} - szablon, który definiuje parametry i jakie typy możliwe on obsługuje, do Wizualnego Edytora (VE).
* {{s|Klasyfikacja modułu}} - szablon używany do klasyfikacji {{lpg|Lua|modułów Lua}} według ich wersji rozwojowych.
==== Dokumentacja szablonów szablonów ====
* {{s|Lua}} - szablon powiadamiający, że dany szablon korzysta z modułów {{lpr|Lua}} w {{lpr|Lua|Scribunto}}.
* {{s|Dostępność}} - szablon służący do oznaczania innych szablonów ze względu na problemy z dostępnością (jeśli nie da się ich wyeliminować) + kilka innych.
* {{s|Uniwersalny szablon językowy}} - uniwersalny szablon do tworzenia kolorowych ramek do podręczników do nauki języków obcych.
* {{s|Używa Wikidane}} - szablon informujące w nagłówku dokumentacji, że szablon używa elementów WikiDane.
* {{s|Wysokie ryzyko}} - szablon jest używany informacyjnie i ostrzegawczo w innych szablonach, które ze względu na częste używanie, poziom komplikacji kodu lub znaczenie systemowe powinny być zmieniane z większą niż zwykle rozwagą i starannością.
== Szablony dokumentacji funkcji {{NAZWASERWISU|link=tak}} ==
=== Szablony dokumentacji systemowej {{s|Man}} ===
* {{s|Man}} - szablon wyświetlający internetową pomoc systemu {{lpg|Man}}.
* {{s|PosixMan}} - szablon wyświetlający funkcje systemowe w standardzie {{lpg|POSIX}}.
* {{s|KernelMan}} - szablon wyświetlający pomoc internetową systemową funkcji jądra systemu operacyjnego.
=== Szablony dokumentacji {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
* {{s|LzLua}} - szablon link odnoszących sie do pewnych punków, którym są definicje funkcji na stronie tej dokumentacji.
== Formatowanie ramek ==
* {{s|Pokaż}} i {{s|Tabela nawigacyjna}} - tabela z ukrywanym lub pokazanym fragmentem tekstu.
* {{s|Show}} i {{s|Ramka nawigacyjna}} - ramka oparta o warstwy {{Tag|div}} z ukrywanym lub pokazywanym fragmentem tekstem.
** {{s|Show/W tabelach}} - przykład użycia szablonu {{s|Show}}.
* Menu stworzone o szablon {{s|Tabela nawigacyjna}}:
** {{s|Menu listy pozycji kategorii}} - szablon do tworzenia menu listy pozycji danej kategorii.
** Szablony stworzone o szablon {{s|Menu listy pozycji kategorii}}:
*** {{s|Menu listy kategorii portali}} - szablon do tworzenia menu listy kategorii tematycznych podręcznikowych kategorii: {{lk|Podręczniki według portalu}}.
*** {{s|Menu listy kategorii statusu}} - szablon wyświetlający menu listy kategorii statusu ukończenia poszczególnych podręczników kategorii: {{lk|Podręczniki według statusu}}.
*** {{s|Menu listy kategorii poziomu}} - szablon wyświetlający menu listy kategorii poziomu kształcenia poszczególnych podręczników kategorii: {{lk|Podręczniki według poziomu}}.
*** {{s|Menu listy kategorii tematycznych}} - szablon do tworzenia menu listy kategorii tematycznych podręcznikowych kategorii {{lk|Podręczniki według tematu}}.
*** {{s|Menu listy kategorii Światy dla dzieci}} - szablon wyświetla menu listy kategorii: {{lk|Wikijunior:Światy dla dzieci}}, dzielący książki dla dzieci według tematu, którą one dotyczą.
== Szablony do obliczeń matematycznych ==
* {{s|Jeśli równe}} - szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą.
* {{s|Liczba z absolutną jednostką długości}} - szablon sprawdza, czy liczba jest podana z absolutną jednostką długości, jeżeli jest podana, to zwraca tą liczbę, a jeżeli nie, to zwraca tą liczbę z jednostką długości {{Code|px}}.
* {{s|Maksimum}} i {{s|Max}} (przekierowanie do tego ostatniego) - szablony do liczenia maksimum z dwóch podanych liczb ewentualnie z jednostkami długości.
* {{s|Minimum}} i {{s|Min}} (przekierowanie do tego ostatniego) - szablony do liczenia minimum z dwóch podanych liczb ewentualnie z jednostkami długości.
* {{s|W pikselach}} - szablon przelicza długości, w jednostkach bezwzględnych lub liczby, na piksele oznaczone symbolicznie (skrótowo), czyli jako ({{Code|px}}), przestawiając je jako liczby w pikselach bez jednostek.
=== Szablony funkcji matematycznych ===
* {{s|Ogranicz}} - funkcja sprawdza wartość pierwszego parametru i jeżeli jest on większy od parametru "max" (domyślnie 240) lub mniejszy od parametru "min" (domyślnie 60) to jako wynik podaje odpowiednią z tych wartości. Jeżeli pierwszy parametr mieści się w tych granicach to jest zwracany bez zmian. Jeżeli pierwszy parametr nie jest liczbą, to jest zwracana wartość parametru "default" (domyślnie 240).
* {{s|Void}} - szablon pusty do skomplikowanych rozwiązań technicznych.
=== Szablony warunkowe ===
Są to szablone warunkowe, wybierania, pierwszego lub drugiego, albo dalszego, w przypadku innych szablonów, na podstawie pewnych spełnionych, lub nie, warunków.
==== Szablony porównań ====
* {{s|Jeśli równe}} - szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą.
* {{s|Jeśli większe}} - szablon sprawdza rozmiary bezwzględne, czy pierwsza wartość jest większa od drugiej, wtedy zwraca niepustą wartość.
==== Szablony typowo warunkowe ====
* {{s|Jeśli niepuste}} - szablon przyjmuje dwa parametry, jeśli pierwszy parametr jest niepusty, wtedy zwraca ten parametr z odpowiednim przedrostkiem lub przedrostkiem i ewentualnie otoczona znacznikami.
* {{s|Jeśli niepuste komunikat}} - szablon używamy do wyświetlania komunikatu, jeśli jest niepusty pierwszy parametr tego szablonu, w przeciwnym przypadku wyświetla trzeci parametr.
==== Szablony istnienia ====
* {{s|Jeśli istnieje}} - szablon przyjmuje dwa parametry numerowane i trzeci, czyli: przedrostek, do pierwszego argumentu w warunku, by tym sprawdzić, czy strona istnieje, a jak tak - to wyświetla się jego pierwszy argument, przeciwnie - drugi.
==== Inne szablony ====
* {{s|Pierwszy niepusty}} - szablon wyświetla pierwszy niepusty element z podanych argumentów, ewentualnie względem zmiennej testowej.
== Artykuły bez infoboksu ==
* {{s|Bez infoboksu}} i {{s|Potrzebne infoboksy}} - szablony, ten pierwszy jest wstawiany na strony dyskusji artykułu, gdy na stronie w przestrzeni {{Np|(main)|link=tak}} lub {{Np|Wikijunior|link=tak}} nie ma tam ściśle określonego infoboksu, a ten drugi jest wstawiany na strony w przestrzeni {{Np|Category|link=tak}} na odpowiednią stronę, która ma zgłaszać, czy ta kategoria jest pusta, czy nie, w tych dwóch przypadkach rodzic kategorii jest inny.
== Szablony ikon ==
* {{s|Ikona}} - ten szablon tworzy wbudowane ikony, które używane są na {{lpr|Metastrony|metastronach}} polskojęzycznej Wikibooks.
== Ramki pudełkowe ==
* {{s|W skrócie}} - ten szablon powinien prezentować streszczenie {{lr|Zasady|zasad Wikibooks}}.
== Szablony pomocy ==
* {{s|Pomagam}} - szablon przeznaczony jest dla doświadczonych użytkowników, którzy chcą pomóc w rozwiązywaniu problemów początkujących wikipedystów.
* {{s|Pomocy}} - szablon wstawia się, wpisując na swojej stronie poniższy tekst: {{s|Pomocy}} lub {{s|Pomocy|Treść problemu}} .
== Strony testowe szablonów ==
* {{s|Przypadek testowy}} - szablon generuje tabelę stosowaną na {{lpr|Brudnopisy i strony testowe szablonów|stronach testowych szablonów}}, która zestawia obok siebie dwie wersje szablonów – szablon główny i jego wersję z brudnopisu.
== Blokada Fundacji Wikimedia na wszystkie jego projekty ==
* {{s|Blokada WMF}} - użycie w przypadku blokad nałożonych przez Fundację Wikimedia.
== Strony z magicznymi linkami ==
* {{s|ISBN}} - szablon magicznego linku ''' ISBN ''' wykorzystujący moduł {{m|ISBN}}.
== Szablony operacji na ciągach (łańcuchach) wykorzystujące moduł {{m|String}} ==
* {{s|Długość}} - zwraca długość podanego ciągu.
* {{s|Subciąg}} - wycina fragment od wybranej pozycji o określonej długości. Parametrami jest odkąd dokąd zwracamy subciąg z tego ciągu.
* {{s|Subciąg2}} - wycina fragment od wybranej pozycji o określonej długości. Parametrami jest odkąd zwracamy subciąg w ciągu, i o jakiej długości.
* {{s|Dopasuj}} - znajdź pasujące w wyszukanym ciągu według wyrażenia regularnego.
* {{s|Pobierz}} - pobierz N-ty znak ciągu.
* {{s|Znajdź}} - zwraca pozycję określonego fragmentu w przeszukiwanym ciągu.
* {{s|Zastąp}} - zamienia w tekście w ciągu pewne podciągi (za pomocą wyrażenia regularnego) na inne.
* {{s|Powtórz}} - szablon powtarza ciąg przez podaną ileś razy.
* {{s|Łącz}} - szablon łączy podane ciągi za pomocą łącznika.
== Szablony parsera tag ==
* {{s|FormularzWejścia}} - szablon służy do tworzenia formularzy wejścia.
* {{s|ListaKategorii}} - szablon wyświetlający listę kategorii.
* {{s|MapaObrazu}} - szablon do wyświetlania mapy obrazu, o odpowiedniej wielkości, z linkiem lub linkami, na niej.
== Szablony ujednoznacznień ==
* {{s|Inne znaczenia}} - szablon informujący o różnych znaczeniach danego pojęcia.
* {{s|Nie mylić z}} - szablon wykorzystywany w przypadku książek o bardzo podobnych nazwach, a innych podobnych znaczeniach.
* {{s|Przekierowanie}} - szablon powinien być wstawiany na stronie, do których istnieje przekierowanie, które z kolei posiada jeszcze własną {{lpr|Strona ujednoznaczniająca|stronę ujednoznaczniającą}}.
* {{s|Ujednoznacznienie}} - szablon ten umieszcza się na stronach ujednoznaczniających. Efektem umieszczenia szablonu jest wyświetlenie krótkiej informacji
== Strony umieszczane na stronach kategorii ==
* {{s|Kategoria dla kategorii}}, {{s|Kategorie tematyczne}} i {{s|Metakategoria}} - szablony wstawiane na strony kategorii mówiące kolejno, że pierwsza kategoria zawiera tylko kategorie, kategorie tematyczne lub jest tylko metakategorią, czyli grupujące strony według ich statusu technicznego.
* {{s|Opis kategorii}} i {{s|Opis kategorii 2}} - szablony opisu kategorii, mający jeszcze dalsze funkcje ten pierwszy, np. wstawia niektóre szablony według jego definicji, czyli on informuje coś o kategorii, a ten drugi szablon ma podstawowe funkcje.
== Szablony wyświetlające zawartość strony ==
=== Szablony wyświetlające strony ===
* {{s|ArtykułSubst}} - szablon do ładowania artykułów innych niż aktualny artykuł w danej książce. Też jest możliwe przestawienie tego szablonu, by wyświetlał pełną nazwę artykułu lub książki.
=== Strony zbiorcze ===
* {{s|StronaSubst}} - szablon do wyświetlania zestawu wszystkich artykułów książki w formie zestawu za pomocą JavaScript.
* {{S|KsiążkaSubst}} - szablon drukuje pełną zawartość wszystkich artykułów aktualnej książki, gdy nazwa bazowa artykułu jest równa nazwie książki lub gdy jego subnazwa jest "Wersja do druku". Gdy subnazwa artykułu jest równa rozdziałowi na stronie głównej książki, to szablon drukuje wszystkie zawartości wszystkie zawartości artykułu należące do tego rozdziału.
=== Zawartości stron ===
* {{s|LuaSubst}} - szablon służy do wyświetlania zawartości kodów języka {{lpr|Lua}}, {{lpg|JavaScript}}, {{lpg|CSS}} i wikikodu, które są dostępne na stronach tego projektu.
== Szablony wyświetlające kod w językach komputerowych ==
* {{s|ŹródłoKodu}} - szablon służy do wyświetlania składni kodu w ramce, generowane przez inne szablony, np. przez szablon {{s|LuaSubst}}. A poniższe szablony wykorzystują go jako kombajn:
** {{s|ŹródłoXml}} - szablon kolorujący składnię kodu w języku skryptowym XML.
** {{s|ŹródłoHtml}} - szablon kolorujący składnię kodu w języku skryptowym HTML.
** {{s|ŹródłoCss}} - szablon kolorujący składnię kodu w języku kaskadowych arkuszy stylów CSS.
== Szablony zaawansowane linków ==
* {{s|WydobądźLinki}} - szablon wydobywa linki wewnętrzne i zewnętrzne z linków, kategorii i rozwiniętego wikikodu, czy HTML - wykorzystujący moduł {{m|StronicowyParser}}.
* {{s|Odnośnik}} - szablon po użyciu generuje odnośnik do pozycji literaturowej w formie żółtego dymku.
=== Szablony linków do baz danych ===
* {{s|ISSN}} - dla publikacji identyfikowanych za pomocą {{lpg|International Standard Serial Number}} (ISSN) 1234-5678.
* {{s|CAS}} - szablon służy do linkowania {{lpg|numer CAS|numeru CAS}} do {{lz|s=https://tools.wmflabs.org/magnustools/cas.php|c=language=pl&cas=|n=wyszukiwarki po numerze CAS}}, zwłaszcza w parametrach {{Code|numer CAS}} w {{s|Białko infobox}}, {{s|Pierwiastek infobox}} i {{s|Związek chemiczny infobox}}.
* {{s|CELEX}} - szablon służy do automatycznego generowania linków do systemu {{lpg|EUR-Lex}} Przy jego użyciu tworzy się linki do stron zwracających wyniki z wyszukiwania przy użyciu numeru {{lpg|CELEX}}.
* {{s|EUR-Lex}} - szablon służy do automatycznego generowania linków do oficjalnego systemu informacji prawnej Unii Europejskiej {{lpg|EUR-Lex}}. Przy jego użyciu tworzy się linki do podstron zawierających informacje o konkretnych dyrektywach, rozporządzeniach lub innych ogłoszonych aktach unijnych.
== Specjalistyczne szablony linków ==
* {{s|Top}} - szablon generuje link, który po kliknięciu na niego, jesteśmy przeniesieni na górę strony.
== Szablony publikacyjne ==
==== Akty prawne - {{lpg|Internetowy System Aktów Prawnych}} ====
Szablony służące do automatycznego generowania linków {{lpg|Internetowy System Aktów Prawnych|Internetowego Systemu Aktów Prawnych Sejmu RP}}:
* {{s|Dziennik Ustaw}} - przy jego użyciu tworzy się linki do podstron zawierających informacje o konkretnych ustawach, rozporządzeniach lub innych aktach normatywnych.
* {{s|Monitor Polski}} - przy jego użyciu tworzy się linki do podstron zawierających informacje o konkretnych aktach prawnych.
==== Szablony pomocnicze do wyświetlania szablonów typu {{S|Dziennik Ustaw}} i {{S|Monitor Polski}} ====
* {{s|Adres publikacyjny}}, {{s|Internetowy System Aktów Prawnych}} i {{s|Publikator}} - szablony pomocnicze do wyświetlania aktów prawnych w tego typu szablonach.
== Szablony pozwoleń i zgłoszeń ==
=== Szablony pozwoleń ===
* {{s|OTRS}} - szablon informuje, że pozwolenie na wykorzystanie materiałów użytych na stronie zostały udzielone, a zarchiwizowane jest w OTRS pod pewnym numerem.
=== Szablon statusu ===
* {{s|Status zgłoszenia}} - status realizowanych zadań, podzielone na różne wybieralne ścisłe kategorie.
== Szablony specjalistyczne podręcznikowe ==
* {{s|Rozmieniarka}} - szablon do rozmieniania pieniędzy.
{{BrClear}}
<noinclude>{{UnikatowaStronaKoniec}}{{Kategoria|Tekstowe opisy techniczne szablonów}}</noinclude>
10o1wj5104e1qbax6wuqe2o19nqhhy6
557831
557830
2026-09-28T18:22:31Z
Persino
2851
/* Artykuły bez infoboksu */
557831
wikitext
text/x-wiki
<noinclude><!--
-->{{UnikatowaStronaStart
| nagłówek = {{Podrozdział|Pomoc Wikibooks - Szablony}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
== Szablony pudełek formatujące tekst ==
* {{s|---}} - szablon powoduje wstawienie w treść dokumentu kreski, zbudowany przy pomocy znacznika {{Tag|hr|pojedynczy}}.
----
* {{s|F}} i {{s|F*}} - szablony, blokowego (ten pierwszy) i liniowego (ten drugi), do formatowania tekstu.
* {{s|Kapitaliki}} i {{s|Kap}} (przekierowanie do tego ostatniego) - szablon przekształca tekst na tekst pisany kapitalikami.
* {{s|Rozstrzelony}} i {{s|Roz}} - szablon powoduje rozstrzelenie liter w tekście.
* {{s|Un}} - szablon wyświetla tekst podkreślony, zastępuje tag {{Tag|u}}, który nie powinien być używany do podkreślonego tekstu ze względu na jego zdeprecjonowanie w HTML 4.01. oraz zmianę znaczenia w HTML 5.
----
* {{s|Centruj}} i {{s|Ce}} (przekierowanie do tego ostatniego) - szablony powodujące wycentrowania jednej lub kilku linii tekstu.
* {{s|CentrujStart}} i {{s|CentrujKoniec}} - szablony, otwierający i zamykające, co pomiędzy nimi jest tekst, który należy wycentrować.
* {{s|CentrujStart2}} i {{s|CentrujKoniec2}} - szablon, otwierający i zamykający, zbudowany w oparciu o tabelkę, z marginesami, tzn. lewym i prawym, automatycznymi, o określonym rozmiarze.
* {{s|Ruby}} i {{s|Ruby2}} - szablony wyświetlające tekst nad znakami tekstu jakiś inny tekst, a za nim jest jeszcze znów inny tekst.
* {{s|Tab}} - szablon używany do tworzenia wcięć pierwszej linii akapitu.
----
* {{s|Summary}} - szablon przeznaczony do używania na stronach indeksowych, obejmuje spis treści stron z przestrzeni głównej, które mają być pobrane do epuba i wyszczególnione w epub-owym spisie treści jako osobna pozycja.
* {{s|Tryb ciemny}} - szablon służy do przełączania pomiędzy dwoma alternatywnymi wersjami tekstu – wersją główną, dostosowaną do trybu jasnego i wersją pomocniczą dostosowaną do trybu ciemnego.
* {{s|JustowanieStart}} i {{s|JustowanieKoniec}}, {{s|JustowanieStart2}} i {{s|JustowanieKoniec2}} - szablony startowe i zamykające do justowania tekstu.
=== Szablony z zawartością ===
* {{s|Dane tekstu}} - zawiera informacje na temat całej pracy (podręcznika) i jego podartykułów na każdej jego stronie.
* {{s|Numerowanie w tabeli}} - szablon do generowania tabeli z ułatwionym wprowadzaniem treści kolumny z liczba porządkową.
==== Szablony opisujące coś ====
* {{s|EfektKodów}} - szablon używamy do przedstawienia kodu i jego zastosowania, wraz z jego wynikiem.
* {{s|OpisKsiążek}} - szablon służy do podawania nazwy strony w przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz w przestrzeni {{Np|Template|link=tak}} i {{Np|Module|link=tak}} używając kolejno szablonów {{s|S}} i {{s|M}}, lub podając nazwę linku, który jest wyświetlany jak zwykły link (nie jak szablon lub moduł - bez użycia tych szablonów) przy użyciu szablonu {{s|ly}}, wraz z ich opisami. Można też podać alternatywną wyświetlaną nazwę strony. Pozycje tych stron są numerowane.
== Szablony czasu ==
* {{s|Czas}} - szablon służy do do wyświetlania sformatowanego czasu.
* {{s|Data wydania}} - zwraca datę wydania dzieła i liczbę dni, miesięcy lub lat która od tej daty upłynęła.
* {{s|Dts}} - szablon jest używany, aby prawidłowo sortować daty w tabelach. Daty w tabelach są prawidłowo sortowane wyłącznie, gdy podane są w formacie rok-miesiąc-dzień, który nie jest powszechnie używany.
* {{s|Dzień gregoriański}} - szablon zwraca liczbę dni gregoriańskich jakie upłynęły od pierwszego roku pierwszego miesiąca i dnia.
* {{s|ISYEARLEAP}} - szablon zwraca "1", jeśli rok podany jako pierwszy parametr jest przestępny oraz "0" w przeciwnym wypadku.
* {{s|Lat lub miesięcy temu}} - zwraca liczbę miesięcy lub lat ile upłynęło od podanej daty.
* {{s|MONTHMIA}} - szablon zwraca nazwę miesiąca w mianowniku.
* {{s|MONTHMSC}} - szablon zwraca nazwę miesiąca w miejscowniku.
* {{s|MONTHNAME}} - zwraca nazwę miesiąca w dopełniaczu dla parametru numer miesiąca.
* {{s|MONTHNUMBER}} - szablon zwraca numer miesiąca dla parametru nazwa miesiąca.
* {{s|NUMBEROFDAYS}} - szablon zwraca liczbę dni w miesiącu.
* {{s|Wiek w dniach}} - zwraca liczbę dni pomiędzy dwoma datami.
=== Ramy czasowe (głosowanie) i wkład użytkownika ===
* {{s|Głosowanie}}, {{s|Głosowanie2}} - {{s|Ramy czasowe zdarzenia}} - szablony te określają ramy czasowe pomiędzy, którymi odbywa się głosowanie na polskim {{NAZWASERWISU|link=tak|po=ie}}.
** {{s|Głosowanie/include}} - szablon do czasowych zdarzenia głosowania.
** {{s|Głosowanie/wynik}} - szablon potrzebny do przedstawiania wyników głosowania.
** {{s|Ramy czasowe zdarzenia/tabela}} - szablon do zakończonej lub trwającej dyskusji.
** {{s|Ramy czasowe zdarzenia/LSnK}} - szablon (makro) przekształca podaną w sekundach długość trwania odcinka czasu na tekst opisowy.
==== Wkład użytkownika i linki danej strony ====
* {{s|La}}, {{s|Ln}}{{Patrz|ln}}, {{s|Lt}}, {{s|Lx}} i {{s|Sil}} - szablony tworzące zestaw linków do podanego artykułu znajdującego się w przestrzeni głównej (edytuj, dyskusja, historia, linkujące, obserwuj, rejestr).
* {{s|Lw}} - szablon do tworzenia linków do stron Wikipedysty, wkładu i rejestru operacji.
* {{s|LnDNU}} - szablon ten działa tak samo jak {{LinkPatrz|ln}}, ale dodatkowo dodaje stronę do jednej z podkategorii {{lk|Dyskusje nad usuwaniem lub naprawą}} - zgodnie z początkiem nazwy strony.
* {{s|Userscan}} - szablon prezentujący wkład wikipedysty.
* {{s|Użytkownik}} - szablon prezentuje linki danego podręcznika.
* {{s|User-multi}} - szablon pozwala na automatyczne dodanie rozmaitych linków do nazwy użytkownika, w zależności od wybranych opcji może to być na przykład link do licznika edycji, do rejestru stron usuniętych, strony dyskusji itd. Jest bardziej wszechstronną alternatywą dla {{s|Użytkownik}}.
=== Szablony nowych i wyróżnionych podręczników miesiąca oraz szablony głosowania ===
* {{s|Link FA}} - umieszczamy w linkach w indyfikatorze, używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks.
* {{s|NPM}} i {{s|WM}} - kolejno nowych i wyróżnionych podręczników miesiąca.
* {{s|Zwycięzca NPM}} i {{s|Zwycięzca NPM krótki}} - szablony ikony nowych podręczników miesiąca.
* {{s|WM/Info}} i {{s|WM/Info krótkie}} - szablony ikony wyróżnionych książek miesiąca.
* {{s|WM/Zegar}} - zegar głosowania wyróżnionych podręczników miesiąca.
== Szablony do dokumentacji szablonów ==
=== Przykłady tabelkowe pewnego szablonu ===
Przykłady do demonstracji problemów na polskim {{NAZWASERWISU|link=tak}}.
==== Szablony do demonstracji pewnych przykładów ====
* {{s|Lorem ipsum}} - szablon potrzebny do demonstracji różnych aspektów na polskim {{NAZWASERWISU|link=tak|wikipedia=tak|po=ie}}.
==== Szablony przykładów opisujące szablon z różnymi parametrami ====
* {{s|Tabela przykładów użycia szablonów}} - szablon tworzy tabelę z dwoma nagłówkami, tzn.: '''Wywołanie''' i '''Efekt''', a przy parametrze {{Parametr|uwagi|tak}} tworzy trzeci nagłówek: '''Uwagi'''.
* {{s|Przykład użycia szablonu w tabeli}} - szablon tworzy tabelkę zawierającą przykłady wywołań szablonu do wstawienia na stronę opisu szablonu.
* {{s|Tytuł strony z szablonem}} - szablon podaje nazwę strony aktualnie opisywanego szablonu
=== Szablony dokumentacji ===
* {{s|Dokumentacja}} i {{s|Podstrona dokumentacji}} - szablony dokumentacji szablonu (ten pierwszy) i opisu (ten drugi).
** {{s|Dokumentacja/preload}} - strona (szablon) do ładowania przykładowego opisu do stworzenia nowego opisu dokumentacji.
* {{s|Kwestie techniczne}} - szablon do zgłaszania problemów technicznych przez użytkownika.
* {{s|Strukturyzacja Wizualnego Edytora}} - szablon, który definiuje parametry i jakie typy możliwe on obsługuje, do Wizualnego Edytora (VE).
* {{s|Klasyfikacja modułu}} - szablon używany do klasyfikacji {{lpg|Lua|modułów Lua}} według ich wersji rozwojowych.
==== Dokumentacja szablonów szablonów ====
* {{s|Lua}} - szablon powiadamiający, że dany szablon korzysta z modułów {{lpr|Lua}} w {{lpr|Lua|Scribunto}}.
* {{s|Dostępność}} - szablon służący do oznaczania innych szablonów ze względu na problemy z dostępnością (jeśli nie da się ich wyeliminować) + kilka innych.
* {{s|Uniwersalny szablon językowy}} - uniwersalny szablon do tworzenia kolorowych ramek do podręczników do nauki języków obcych.
* {{s|Używa Wikidane}} - szablon informujące w nagłówku dokumentacji, że szablon używa elementów WikiDane.
* {{s|Wysokie ryzyko}} - szablon jest używany informacyjnie i ostrzegawczo w innych szablonach, które ze względu na częste używanie, poziom komplikacji kodu lub znaczenie systemowe powinny być zmieniane z większą niż zwykle rozwagą i starannością.
== Szablony dokumentacji funkcji {{NAZWASERWISU|link=tak}} ==
=== Szablony dokumentacji systemowej {{s|Man}} ===
* {{s|Man}} - szablon wyświetlający internetową pomoc systemu {{lpg|Man}}.
* {{s|PosixMan}} - szablon wyświetlający funkcje systemowe w standardzie {{lpg|POSIX}}.
* {{s|KernelMan}} - szablon wyświetlający pomoc internetową systemową funkcji jądra systemu operacyjnego.
=== Szablony dokumentacji {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
* {{s|LzLua}} - szablon link odnoszących sie do pewnych punków, którym są definicje funkcji na stronie tej dokumentacji.
== Formatowanie ramek ==
* {{s|Pokaż}} i {{s|Tabela nawigacyjna}} - tabela z ukrywanym lub pokazanym fragmentem tekstu.
* {{s|Show}} i {{s|Ramka nawigacyjna}} - ramka oparta o warstwy {{Tag|div}} z ukrywanym lub pokazywanym fragmentem tekstem.
** {{s|Show/W tabelach}} - przykład użycia szablonu {{s|Show}}.
* Menu stworzone o szablon {{s|Tabela nawigacyjna}}:
** {{s|Menu listy pozycji kategorii}} - szablon do tworzenia menu listy pozycji danej kategorii.
** Szablony stworzone o szablon {{s|Menu listy pozycji kategorii}}:
*** {{s|Menu listy kategorii portali}} - szablon do tworzenia menu listy kategorii tematycznych podręcznikowych kategorii: {{lk|Podręczniki według portalu}}.
*** {{s|Menu listy kategorii statusu}} - szablon wyświetlający menu listy kategorii statusu ukończenia poszczególnych podręczników kategorii: {{lk|Podręczniki według statusu}}.
*** {{s|Menu listy kategorii poziomu}} - szablon wyświetlający menu listy kategorii poziomu kształcenia poszczególnych podręczników kategorii: {{lk|Podręczniki według poziomu}}.
*** {{s|Menu listy kategorii tematycznych}} - szablon do tworzenia menu listy kategorii tematycznych podręcznikowych kategorii {{lk|Podręczniki według tematu}}.
*** {{s|Menu listy kategorii Światy dla dzieci}} - szablon wyświetla menu listy kategorii: {{lk|Wikijunior:Światy dla dzieci}}, dzielący książki dla dzieci według tematu, którą one dotyczą.
== Szablony do obliczeń matematycznych ==
* {{s|Jeśli równe}} - szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą.
* {{s|Liczba z absolutną jednostką długości}} - szablon sprawdza, czy liczba jest podana z absolutną jednostką długości, jeżeli jest podana, to zwraca tą liczbę, a jeżeli nie, to zwraca tą liczbę z jednostką długości {{Code|px}}.
* {{s|Maksimum}} i {{s|Max}} (przekierowanie do tego ostatniego) - szablony do liczenia maksimum z dwóch podanych liczb ewentualnie z jednostkami długości.
* {{s|Minimum}} i {{s|Min}} (przekierowanie do tego ostatniego) - szablony do liczenia minimum z dwóch podanych liczb ewentualnie z jednostkami długości.
* {{s|W pikselach}} - szablon przelicza długości, w jednostkach bezwzględnych lub liczby, na piksele oznaczone symbolicznie (skrótowo), czyli jako ({{Code|px}}), przestawiając je jako liczby w pikselach bez jednostek.
=== Szablony funkcji matematycznych ===
* {{s|Ogranicz}} - funkcja sprawdza wartość pierwszego parametru i jeżeli jest on większy od parametru "max" (domyślnie 240) lub mniejszy od parametru "min" (domyślnie 60) to jako wynik podaje odpowiednią z tych wartości. Jeżeli pierwszy parametr mieści się w tych granicach to jest zwracany bez zmian. Jeżeli pierwszy parametr nie jest liczbą, to jest zwracana wartość parametru "default" (domyślnie 240).
* {{s|Void}} - szablon pusty do skomplikowanych rozwiązań technicznych.
=== Szablony warunkowe ===
Są to szablone warunkowe, wybierania, pierwszego lub drugiego, albo dalszego, w przypadku innych szablonów, na podstawie pewnych spełnionych, lub nie, warunków.
==== Szablony porównań ====
* {{s|Jeśli równe}} - szablon warunkowy porównujący dwie wartości, ewentualnie w dwóch różnych jednostkach długości ze sobą.
* {{s|Jeśli większe}} - szablon sprawdza rozmiary bezwzględne, czy pierwsza wartość jest większa od drugiej, wtedy zwraca niepustą wartość.
==== Szablony typowo warunkowe ====
* {{s|Jeśli niepuste}} - szablon przyjmuje dwa parametry, jeśli pierwszy parametr jest niepusty, wtedy zwraca ten parametr z odpowiednim przedrostkiem lub przedrostkiem i ewentualnie otoczona znacznikami.
* {{s|Jeśli niepuste komunikat}} - szablon używamy do wyświetlania komunikatu, jeśli jest niepusty pierwszy parametr tego szablonu, w przeciwnym przypadku wyświetla trzeci parametr.
==== Szablony istnienia ====
* {{s|Jeśli istnieje}} - szablon przyjmuje dwa parametry numerowane i trzeci, czyli: przedrostek, do pierwszego argumentu w warunku, by tym sprawdzić, czy strona istnieje, a jak tak - to wyświetla się jego pierwszy argument, przeciwnie - drugi.
==== Inne szablony ====
* {{s|Pierwszy niepusty}} - szablon wyświetla pierwszy niepusty element z podanych argumentów, ewentualnie względem zmiennej testowej.
== Artykuły bez infoboksu ==
* {{s|Bez infoboksu}} i {{s|Potrzebne infoboksy}} - szablony, ten pierwszy jest wstawiany na strony dyskusji artykułu, gdy na stronie w przestrzeni {{Np|(main)|link=tak}} lub {{Np|Wikijunior|link=tak}} nie ma tam ściśle określonego infoboksu, a ten drugi jest umieszczany na stronach w przestrzeni {{Np|Category|link=tak}} na odpowiednich stronach, które maja zgłaszać, czy te poszczególne kategorie są puste, czy nie, w tych dwóch przypadkach rodzic kategorii jest zupełnie inny.
== Szablony ikon ==
* {{s|Ikona}} - ten szablon tworzy wbudowane ikony, które używane są na {{lpr|Metastrony|metastronach}} polskojęzycznej Wikibooks.
== Ramki pudełkowe ==
* {{s|W skrócie}} - ten szablon powinien prezentować streszczenie {{lr|Zasady|zasad Wikibooks}}.
== Szablony pomocy ==
* {{s|Pomagam}} - szablon przeznaczony jest dla doświadczonych użytkowników, którzy chcą pomóc w rozwiązywaniu problemów początkujących wikipedystów.
* {{s|Pomocy}} - szablon wstawia się, wpisując na swojej stronie poniższy tekst: {{s|Pomocy}} lub {{s|Pomocy|Treść problemu}} .
== Strony testowe szablonów ==
* {{s|Przypadek testowy}} - szablon generuje tabelę stosowaną na {{lpr|Brudnopisy i strony testowe szablonów|stronach testowych szablonów}}, która zestawia obok siebie dwie wersje szablonów – szablon główny i jego wersję z brudnopisu.
== Blokada Fundacji Wikimedia na wszystkie jego projekty ==
* {{s|Blokada WMF}} - użycie w przypadku blokad nałożonych przez Fundację Wikimedia.
== Strony z magicznymi linkami ==
* {{s|ISBN}} - szablon magicznego linku ''' ISBN ''' wykorzystujący moduł {{m|ISBN}}.
== Szablony operacji na ciągach (łańcuchach) wykorzystujące moduł {{m|String}} ==
* {{s|Długość}} - zwraca długość podanego ciągu.
* {{s|Subciąg}} - wycina fragment od wybranej pozycji o określonej długości. Parametrami jest odkąd dokąd zwracamy subciąg z tego ciągu.
* {{s|Subciąg2}} - wycina fragment od wybranej pozycji o określonej długości. Parametrami jest odkąd zwracamy subciąg w ciągu, i o jakiej długości.
* {{s|Dopasuj}} - znajdź pasujące w wyszukanym ciągu według wyrażenia regularnego.
* {{s|Pobierz}} - pobierz N-ty znak ciągu.
* {{s|Znajdź}} - zwraca pozycję określonego fragmentu w przeszukiwanym ciągu.
* {{s|Zastąp}} - zamienia w tekście w ciągu pewne podciągi (za pomocą wyrażenia regularnego) na inne.
* {{s|Powtórz}} - szablon powtarza ciąg przez podaną ileś razy.
* {{s|Łącz}} - szablon łączy podane ciągi za pomocą łącznika.
== Szablony parsera tag ==
* {{s|FormularzWejścia}} - szablon służy do tworzenia formularzy wejścia.
* {{s|ListaKategorii}} - szablon wyświetlający listę kategorii.
* {{s|MapaObrazu}} - szablon do wyświetlania mapy obrazu, o odpowiedniej wielkości, z linkiem lub linkami, na niej.
== Szablony ujednoznacznień ==
* {{s|Inne znaczenia}} - szablon informujący o różnych znaczeniach danego pojęcia.
* {{s|Nie mylić z}} - szablon wykorzystywany w przypadku książek o bardzo podobnych nazwach, a innych podobnych znaczeniach.
* {{s|Przekierowanie}} - szablon powinien być wstawiany na stronie, do których istnieje przekierowanie, które z kolei posiada jeszcze własną {{lpr|Strona ujednoznaczniająca|stronę ujednoznaczniającą}}.
* {{s|Ujednoznacznienie}} - szablon ten umieszcza się na stronach ujednoznaczniających. Efektem umieszczenia szablonu jest wyświetlenie krótkiej informacji
== Strony umieszczane na stronach kategorii ==
* {{s|Kategoria dla kategorii}}, {{s|Kategorie tematyczne}} i {{s|Metakategoria}} - szablony wstawiane na strony kategorii mówiące kolejno, że pierwsza kategoria zawiera tylko kategorie, kategorie tematyczne lub jest tylko metakategorią, czyli grupujące strony według ich statusu technicznego.
* {{s|Opis kategorii}} i {{s|Opis kategorii 2}} - szablony opisu kategorii, mający jeszcze dalsze funkcje ten pierwszy, np. wstawia niektóre szablony według jego definicji, czyli on informuje coś o kategorii, a ten drugi szablon ma podstawowe funkcje.
== Szablony wyświetlające zawartość strony ==
=== Szablony wyświetlające strony ===
* {{s|ArtykułSubst}} - szablon do ładowania artykułów innych niż aktualny artykuł w danej książce. Też jest możliwe przestawienie tego szablonu, by wyświetlał pełną nazwę artykułu lub książki.
=== Strony zbiorcze ===
* {{s|StronaSubst}} - szablon do wyświetlania zestawu wszystkich artykułów książki w formie zestawu za pomocą JavaScript.
* {{S|KsiążkaSubst}} - szablon drukuje pełną zawartość wszystkich artykułów aktualnej książki, gdy nazwa bazowa artykułu jest równa nazwie książki lub gdy jego subnazwa jest "Wersja do druku". Gdy subnazwa artykułu jest równa rozdziałowi na stronie głównej książki, to szablon drukuje wszystkie zawartości wszystkie zawartości artykułu należące do tego rozdziału.
=== Zawartości stron ===
* {{s|LuaSubst}} - szablon służy do wyświetlania zawartości kodów języka {{lpr|Lua}}, {{lpg|JavaScript}}, {{lpg|CSS}} i wikikodu, które są dostępne na stronach tego projektu.
== Szablony wyświetlające kod w językach komputerowych ==
* {{s|ŹródłoKodu}} - szablon służy do wyświetlania składni kodu w ramce, generowane przez inne szablony, np. przez szablon {{s|LuaSubst}}. A poniższe szablony wykorzystują go jako kombajn:
** {{s|ŹródłoXml}} - szablon kolorujący składnię kodu w języku skryptowym XML.
** {{s|ŹródłoHtml}} - szablon kolorujący składnię kodu w języku skryptowym HTML.
** {{s|ŹródłoCss}} - szablon kolorujący składnię kodu w języku kaskadowych arkuszy stylów CSS.
== Szablony zaawansowane linków ==
* {{s|WydobądźLinki}} - szablon wydobywa linki wewnętrzne i zewnętrzne z linków, kategorii i rozwiniętego wikikodu, czy HTML - wykorzystujący moduł {{m|StronicowyParser}}.
* {{s|Odnośnik}} - szablon po użyciu generuje odnośnik do pozycji literaturowej w formie żółtego dymku.
=== Szablony linków do baz danych ===
* {{s|ISSN}} - dla publikacji identyfikowanych za pomocą {{lpg|International Standard Serial Number}} (ISSN) 1234-5678.
* {{s|CAS}} - szablon służy do linkowania {{lpg|numer CAS|numeru CAS}} do {{lz|s=https://tools.wmflabs.org/magnustools/cas.php|c=language=pl&cas=|n=wyszukiwarki po numerze CAS}}, zwłaszcza w parametrach {{Code|numer CAS}} w {{s|Białko infobox}}, {{s|Pierwiastek infobox}} i {{s|Związek chemiczny infobox}}.
* {{s|CELEX}} - szablon służy do automatycznego generowania linków do systemu {{lpg|EUR-Lex}} Przy jego użyciu tworzy się linki do stron zwracających wyniki z wyszukiwania przy użyciu numeru {{lpg|CELEX}}.
* {{s|EUR-Lex}} - szablon służy do automatycznego generowania linków do oficjalnego systemu informacji prawnej Unii Europejskiej {{lpg|EUR-Lex}}. Przy jego użyciu tworzy się linki do podstron zawierających informacje o konkretnych dyrektywach, rozporządzeniach lub innych ogłoszonych aktach unijnych.
== Specjalistyczne szablony linków ==
* {{s|Top}} - szablon generuje link, który po kliknięciu na niego, jesteśmy przeniesieni na górę strony.
== Szablony publikacyjne ==
==== Akty prawne - {{lpg|Internetowy System Aktów Prawnych}} ====
Szablony służące do automatycznego generowania linków {{lpg|Internetowy System Aktów Prawnych|Internetowego Systemu Aktów Prawnych Sejmu RP}}:
* {{s|Dziennik Ustaw}} - przy jego użyciu tworzy się linki do podstron zawierających informacje o konkretnych ustawach, rozporządzeniach lub innych aktach normatywnych.
* {{s|Monitor Polski}} - przy jego użyciu tworzy się linki do podstron zawierających informacje o konkretnych aktach prawnych.
==== Szablony pomocnicze do wyświetlania szablonów typu {{S|Dziennik Ustaw}} i {{S|Monitor Polski}} ====
* {{s|Adres publikacyjny}}, {{s|Internetowy System Aktów Prawnych}} i {{s|Publikator}} - szablony pomocnicze do wyświetlania aktów prawnych w tego typu szablonach.
== Szablony pozwoleń i zgłoszeń ==
=== Szablony pozwoleń ===
* {{s|OTRS}} - szablon informuje, że pozwolenie na wykorzystanie materiałów użytych na stronie zostały udzielone, a zarchiwizowane jest w OTRS pod pewnym numerem.
=== Szablon statusu ===
* {{s|Status zgłoszenia}} - status realizowanych zadań, podzielone na różne wybieralne ścisłe kategorie.
== Szablony specjalistyczne podręcznikowe ==
* {{s|Rozmieniarka}} - szablon do rozmieniania pieniędzy.
{{BrClear}}
<noinclude>{{UnikatowaStronaKoniec}}{{Kategoria|Tekstowe opisy techniczne szablonów}}</noinclude>
5dvhzttv1jfj10h25gnky3yi28sra83
Wikibooks:Szablony/Techniczne
4
60356
557825
552178
2026-09-28T17:55:22Z
Persino
2851
/* Szablony typowo warunkowe */
557825
wikitext
text/x-wiki
<noinclude>{{Autonawigacja|Pomoc:Spis treści}}</noinclude>
== Podświetlanie składni - szablony ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|ŹródłoKodu|język{{=}}xml|
{{s|Mniejszy}}ref name{{=}}"Nazwa przypisu"{{s|Większy}}W przypisie może być cokolwiek{{s|Mniejszy}}/ref{{s|Większy}}
{{s|Mniejszy}}ref name{{=}}"Wydawca: Jakiś tytuł"{{s|Większy}}Franciszka Tłumacząca, Przypisy często zawierają odniesienia do literatury lub źródeł internetowych{{s|Mniejszy}}/ref{{s|Większy}}
}}}}
| _1 = {{ŹródłoKodu|język=xml|
{{Mniejszy}}ref name{{=}}"Nazwa przypisu"{{Większy}}W przypisie może być cokolwiek{{Mniejszy}}/ref{{Większy}}
{{Mniejszy}}ref name{{=}}"Wydawca: Jakiś tytuł"{{Większy}}Franciszka Tłumacząca, Przypisy często zawierają odniesienia do literatury lub źródeł internetowych{{Mniejszy}}/ref{{Większy}}
}}
| 2 = {{Pre|{{s|ŹródłoHtml|{{s|Pełny rozdział|Zaczynamy|nazwa przestrzeni nazw{{=}}(main)|nazwa jednostki{{=}}Matematyka dla liceum}}}}}}
| _2 = {{ŹródłoHtml|{{Pełny rozdział|Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum}}}}
| 3 = {{Pre|{{s|ŹródłoCss|
.klasa_jeden{{s|(}}
width:100px;
height:150px;
font-fize:12px;
white-space:nowrap;
{{s|)}}}}}}
| _3 = {{ŹródłoCss|
.klasa_jeden{{(}}
width:100px;
height:150px;
font-size:12px;
white-space:nowrap;
{{)}}}}
| 4 = {{Pre|{{s|ŹródłoXml|
{{s|Mniejszy}}ref name{{s|{{=}}}}"Nazwa przypisu"{{s|Większy}}W przypisie może być cokolwiek{{s|Mniejszy}}/ref{{s|Większy}}
{{s|Mniejszy}}ref name{{s|{{=}}}}"Wydawca: Jakiś tytuł"{{s|Większy}}Franciszka Tłumacząca, ''Przypisy często zawierają odniesienia do literatury lub źródeł internetowych''{{s|Mniejszy}}/ref{{s|Większy}}
}}}}
| _4 = {{ŹródłoXml|
{{Mniejszy}}ref name{{=}}"Nazwa przypisu"{{Większy}}W przypisie może być cokolwiek{{Mniejszy}}/ref{{Większy}}
{{Mniejszy}}ref name{{=}}"Wydawca: Jakiś tytuł"{{Większy}}Franciszka Tłumacząca, Przypisy często zawierają odniesienia do literatury lub źródeł internetowych{{Mniejszy}}/ref{{Większy}}
}}
}}
== Pobieranie danych ze strony ==
{{EfektKodów|kod-rozmiar=35%
| 1 = {{Tt|{{s|ŹródłoCss|{{s|LuaSubst|{{Ns:Template}}:Nowraplinki/styles.css}}}}}}
| _1 = {{ŹródłoCss|{{LuaSubst|{{Ns:Template}}:Nowraplinki/styles.css}}}}
}}
== Pobieranie ustawień ze strony ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|PobierzUstawienia|Szablon:Podręcznik/Ustawienia/Szablon:Autonawigacja|artykuł|zmienna klucz}}}}
| _1 = {{PobierzUstawienia|Szablon:Podręcznik/Ustawienia/Szablon:Autonawigacja|artykuł|zmienna klucz}}
}}
== Szablony pobierania ustawień ze swojego wywołania ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|Conf|tytuł
| poza_projektem {{=}} Tutaj jest kod wartości '''poza_projektem'''.
| tytuł {{=}} Tutaj jest kod wartości '''tytuł'''.
| autor {{=}} Tutaj jest kod wartości '''autor'''.
| autor1 {{=}} Tutaj jest kod wartości '''autor1'''.
| sekcja {{=}} Tutaj jest kod wartości '''sekcja'''.
| sekcja2 {{=}} Tutaj jest kod wartości '''sekcja2'''.
| sekcja3 {{=}} Tutaj jest kod wartości '''sekcja3'''.
| sekcja4 {{=}} Tutaj jest kod wartości '''sekcja4'''.
| sekcja5 {{=}} Tutaj jest kod wartości '''sekcja5'''.
| poprzedni {{=}} Tutaj jest kod wartości '''poprzedni'''.
| następny {{=}} Tutaj jest kod wartości '''następny'''.
| adnotacje {{=}} Tutaj jest kod wartości '''adnotacje'''.
| tłumacz {{=}} Tutaj jest kod wartości '''tłumacz'''.
| tłumacz_uwagi {{=}} Tutaj jest kod wartości '''tłumacz_uwagi'''.
| wikitłumacz {{=}} Tutaj jest kod wartości '''wikitłumacz'''.
| stopka {{=}} Tutaj jest kod wartości '''stopka'''.
| wyjście {{=}} Tu znajduje się wartość domyślna.
}}}}
| _1 = {{Conf|tytuł
| poza_projektem = Tutaj jest kod wartości '''poza_projektem'''.
| tytuł = Tutaj jest kod wartości '''tytuł'''.
| autor = Tutaj jest kod wartości '''autor'''.
| autor1 = Tutaj jest kod wartości '''autor1'''.
| sekcja = Tutaj jest kod wartości '''sekcja'''.
| sekcja2 = Tutaj jest kod wartości '''sekcja2'''.
| sekcja3 = Tutaj jest kod wartości '''sekcja3'''.
| sekcja4 = Tutaj jest kod wartości '''sekcja4'''.
| sekcja5 = Tutaj jest kod wartości '''sekcja5'''.
| poprzedni = Tutaj jest kod wartości '''poprzedni'''.
| następny = Tutaj jest kod wartości '''następny'''.
| adnotacje = Tutaj jest kod wartości '''adnotacje'''.
| tłumacz = Tutaj jest kod wartości '''tłumacz'''.
| tłumacz_uwagi = Tutaj jest kod wartości '''tłumacz_uwagi'''.
| wikitłumacz = Tutaj jest kod wartości '''wikitłumacz'''.
| stopka = Tutaj jest kod wartości '''stopka'''.
| wyjście = Tu znajduje się wartość domyślna.
}}
| 2 = {{Pre|{{s|ConfDomyślna|tytuł nieznany
| poza_projektem {{=}} Tutaj jest kod wartości '''poza_projektem'''.
| tytuł {{=}} Tutaj jest kod wartości '''tytuł'''.
| autor {{=}} Tutaj jest kod wartości '''autor'''.
| autor1 {{=}} Tutaj jest kod wartości '''autor1'''.
| sekcja {{=}} Tutaj jest kod wartości '''sekcja'''.
| sekcja2 {{=}} Tutaj jest kod wartości '''sekcja2'''.
| sekcja3 {{=}} Tutaj jest kod wartości '''sekcja3'''.
| sekcja4 {{=}} Tutaj jest kod wartości '''sekcja4'''.
| sekcja5 {{=}} Tutaj jest kod wartości '''sekcja5'''.
| poprzedni {{=}} Tutaj jest kod wartości '''poprzedni'''.
| następny {{=}} Tutaj jest kod wartości '''następny'''.
| adnotacje {{=}} Tutaj jest kod wartości '''adnotacje'''.
| tłumacz {{=}} Tutaj jest kod wartości '''tłumacz'''.
| tłumacz_uwagi {{=}} Tutaj jest kod wartości '''tłumacz_uwagi'''.
| wikitłumacz {{=}} Tutaj jest kod wartości '''wikitłumacz'''.
| stopka {{=}} Tutaj jest kod wartości '''stopka'''.
| wyjście {{=}} Tu znajduje się wartość domyślna.
}}}}
| _2 = {{ConfDomyślna|tytuł nieznany
| poza_projektem = Tutaj jest kod wartości '''poza_projektem'''.
| tytuł = Tutaj jest kod wartości '''tytuł'''.
| autor = Tutaj jest kod wartości '''autor'''.
| autor1 = Tutaj jest kod wartości '''autor1'''.
| sekcja = Tutaj jest kod wartości '''sekcja'''.
| sekcja2 = Tutaj jest kod wartości '''sekcja2'''.
| sekcja3 = Tutaj jest kod wartości '''sekcja3'''.
| sekcja4 = Tutaj jest kod wartości '''sekcja4'''.
| sekcja5 = Tutaj jest kod wartości '''sekcja5'''.
| poprzedni = Tutaj jest kod wartości '''poprzedni'''.
| następny = Tutaj jest kod wartości '''następny'''.
| adnotacje = Tutaj jest kod wartości '''adnotacje'''.
| tłumacz = Tutaj jest kod wartości '''tłumacz'''.
| tłumacz_uwagi = Tutaj jest kod wartości '''tłumacz_uwagi'''.
| wikitłumacz = Tutaj jest kod wartości '''wikitłumacz'''.
| stopka = Tutaj jest kod wartości '''stopka'''.
| wyjście = Tu znajduje się wartość domyślna.
}}
}}
== Opakowania kategorii ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|OpakujKategorie|{{s|Integrowanie|Zapałka/jeden|nazwa przestrzeni nazw{{=}}(main)|nazwa jednostki{{=}}Strona/Podstrona}}}}}}
| _1 = {{OpakujKategorie|{{Integrowanie|Zapałka/jeden|nazwa przestrzeni nazw=(main)|nazwa jednostki=Strona/Podstrona}}}}
| 2 = {{Tt|{{s|OpakujKategorieZeSortowaniem|{{s|Integrowanie|Zapałka/jeden|nazwa przestrzeni nazw{{=}}(main)|nazwa jednostki{{=}}Strona/Podstrona}}}}}}
| _2 = {{OpakujKategorieZeSortowaniem|{{Integrowanie|Zapałka/jeden|nazwa przestrzeni nazw=(main)|nazwa jednostki=Strona/Podstrona}}}}
}}
== Szablony styli ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|
* ''' Wikikod: ''' {{s|Div|styl{{=}}{{s|Gradient|#e8f4ff|#FFFFFF|horizontal}}|{{s|Lorem ipsum|1}}}}
* ''' Kod HTML: ''' {{Nowiki|{{Div|styl={{Gradient|#e8f4ff|#FFFFFF|horizontal}}|{{Lorem ipsum|1}}}}}}
}}
| _1 = {{Div|styl={{Gradient|#e8f4ff|#FFFFFF|horizontal}}|{{Lorem ipsum|1}}}}
| bez-overflow-wiersz_2=tak
| 2 = {{Tt|
* ''' Wikikod: ''' {{s|Div|styl{{=}}background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{s|Cień ramki|4px|4px|8px|#fc0;}}|{{s|Lorem ipsum|1}}}}
* ''' Kod HTML: ''' {{Nowiki|{{Div|styl=background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{Cień ramki|4px|4px|8px|#fc0;}}|{{Lorem ipsum|1}}}}}}
}}
| _2 = {{Div|styl=background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{Cień ramki|4px|4px|8px|#fc0;}}|{{Lorem ipsum|1}}}}
| 3 = {{Tt|
* ''' Wikikod: ''' {{s|Div|styl{{=}}background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{s|Promień ramki|16px 8px 16px 8px}}|{{s|Lorem ipsum|1}}}}
* ''' Kod HTML: ''' {{Nowiki|{{Div|styl=background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{Promień ramki|16px 8px 16px 8px}}|{{Lorem ipsum|1}}}}}}
}}
| _3 = {{Div|styl=background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{Promień ramki|16px 8px 16px 8px}}|{{Lorem ipsum|1}}}}
}}
== Szablony widżetów (ogólnie) ==
Przedstawimy tutaj szablony, które można podreperować pod widżety różnego rodzaju.
=== Przyciski ===
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Przycisk do klikania|Wikibooks:Strona główna|Napis|class{{=}}czerwony}}}}
| _1 = {{Przycisk do klikania|Wikibooks:Strona główna|Napis|class=czerwony}}
| 2 = {{Tt|{{s|Przycisk do klikania 2|Strona główna|class{{=}}mw-ui-destructive}}}}
* Przekierowanie do niego jest: {{s|Guzik}}.
| _2 = {{Przycisk do klikania 2|Strona główna|class=mw-ui-destructive}}
| 3 = {{Tt|{{s|Przycisk archiwum|szablon{{=}}LinkProjekt|strona{{=}}Prośby do administratorów|archiwum{{=}}Archiwum|nazwa{{=}}Archiwum zgłoszeń}}}}
| _3 = {{Przycisk archiwum|szablon=LinkProjekt|strona=Prośby do administratorów|archiwum=Archiwum|nazwa=Archiwum zgłoszeń}}
}}
=== Szczególne szablony widżetów ===
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|WidżetGrupa|temat{{=}}To jest temat|tekst{{=}}{{s|Lorem ipsum}}}}}}
| _1 = {{WidżetGrupa|temat=To jest temat|tekst={{Lorem ipsum}}}}
}}
== Szablony nielinkowe do symbolizacji kodu ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Parametr|zmienna|tak}}}}
* szablon do symbolizacji fragmentu kodu wywołania szablonu
| _1 = {{Parametr|zmienna|tak}}
| 2 = {{Tt|{{s|Tag|div|zawartość{{=}}Oto jest zawartość|parametry{{=}}style{{=}}"border:10px solid black"}}}}
| _2 = {{Tag|div|zawartość=Oto jest zawartość|parametry=style="border:10px solid black"}}
}}
== Szablony do wstawiania kolorów ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Colorbox|darkkhaki|Kolor khaki|Khaki|kod projektu{{=}}w}}}}
| _1 = {{colorbox|darkkhaki|Kolor khaki|Khaki|kod projektu=w}}
| 2 = {{Tt|{{s|Colorbox2|green|zielony|czcionka{{=}}black|w{{=}}200|h{{=}}50}}}}
| _2 = {{Colorbox2|green|zielony|czcionka=black|w=200|h=50}}
| 3 = {{Tt|{{s|Kolor|#4169E1|To jest tekst w kolorze RoyalBlue (#4169E1)}}}}
| _3 = {{Kolor|#4169E1|To jest tekst w kolorze RoyalBlue (#4169E1)}}
| 4 = {{Tt|{{s|Legenda|white|Afryka|w linii{{=}}tak}} {{s|Legenda|green|Ameryki||w linii{{=}}tak}} {{s|Legenda|blue|Oceania||w linii{{=}}tak}} {{s|Legenda|#ff0|Europa||w linii{{=}}tak}} {{s|Legenda|#ff2800|Azja|none|w linii{{=}}tak}}}}
| _4 = {{Legenda|white|Afryka|w linii=tak}} {{Legenda|green|Ameryki||w linii=tak}} {{Legenda|blue|Oceania||w linii=tak}} {{Legenda|#ff0|Europa||w linii=tak}} {{Legenda|#ff2800|Azja|none|w linii=tak}}
| 5 = {{Tt|{{s|Tło|#FFEBCD|Tu jest tło tekstu w kolorze BlanchedAlmond (#FFEBCD)}}}}
| _5 = {{Tło|#FFEBCD|Tu jest tło tekstu w kolorze BlanchedAlmond (#FFEBCD)}}
| 6 = {{Tt|Wywołania szablonu: {{s|s|Ui-kolory}}: „pozytyw” jeśli ma być zielony {{s|Colorbox|{{s|Ui-kolory|pozytyw}}}}, „neutral” jeśli niebieski {{s|Colorbox|{{s|Ui-kolory|neutral}}}}, „negatyw” jeśli czerwony {{s|Colorbox|{{s|ui-kolory|negatyw}}}}, „ostrzeżenie” jeżeli pomarańczowy {{s|Colorbox|{{s|Ui-kolory|ostrzeżenie}}}}}}
| _6 = Wywołania szablonu: {{s|Ui-kolory}}: „pozytyw” jeśli ma być zielony {{colorbox|{{ui-kolory|pozytyw}}}}, „neutral” jeśli niebieski {{colorbox|{{ui-kolory|neutral}}}}, „negatyw” jeśli czerwony {{colorbox|{{ui-kolory|negatyw}}}}, „ostrzeżenie” jeżeli pomarańczowy {{colorbox|{{ui-kolory|ostrzeżenie}}}}
}}
== Szablony spisu tekstów danego autora ==
{{EfektKodów
| 1 = {{Tt|{{s|Spis|Użytkownik}}}} | _1 = {{Spis|Użytkownik}}
}}
== Szablony indeksowania i do wyszukiwania podanych słów kluczowych ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|Szablon {{s|s|Kotwica}} można umieszczać w nagłówkach rozdziałów:{{Br}}
<nowiki>===</nowiki> {{s|Kotwica|roz01|klucz1}} Oto jest nagłówek <nowiki>===</nowiki>{{Br}}
A do tego rozdziału można linkować za pomocą szablonu {{s|lu|#roz01|w{{=}}Inna nazwa ustępu}}.}}
| _1 = Szablon {{s|Kotwica}} można umieszczać w nagłówkach rozdziałów:
=== {{Kotwica|roz01|klucz1}} Oto jest nagłówek ===
A do tego rozdziału można linkować za pomocą szablonu {{lu|#roz01|w=Inna nazwa ustępu}}.
| 2 = {{Tt|Szablon {{s|s|Indeksuj}} można umieszczać w nagłówkach rozdziałów:{{Br}}
<nowiki>*</nowiki> Oto jest tekst, a w nim szablon, którego nie widać{{s|Indeksuj|słowa kluczowe|unikalny link}}, do którego możemy się odwołać.{{Br}}
<nowiki>*</nowiki> A oto jest link: {{s|lu|#unikalny link|w{{=}}link do id}}}}
| _2 = Szablon {{s|Indeksuj}} można umieszczać w nagłówkach rozdziałów:
* Oto jest tekst, a w nim szablon, którego nie widać{{Indeksuj|słowa kluczowe|unikalny link}}, do którego możemy się odwołać.
* A oto jest link: {{lu|#unikalny link|w=link do id}}.
}}
== Szablony list wykorzystujące moduł {{m|Lista}} ==
{{EfektKodów|kod-rozmiar=35%
| 1 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Niewypunktowana lista|jeden|dwa|trzy}}}}}}
| _1 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Niewypunktowana lista|jeden|dwa|trzy}}}}
| 2 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Pozioma lista|jeden|dwa|trzy}}}}}}
| _2 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Pozioma lista|jeden|dwa|trzy}}}}
| 3 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Poziomo uporządkowana lista|jeden|dwa|trzy}}}}}}
| _3 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Poziomo uporządkowana lista|jeden|dwa|trzy}}}}
| 4 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Uporządkowana lista|jeden|dwa|trzy}}}}}}
| _4 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Uporządkowana lista|jeden|dwa|trzy}}}}
| 5 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Wypunktowana lista|jeden|dwa|trzy}}}}}}
| _5 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Wypunktowana lista|jeden|dwa|trzy}}}}
}}
== Szablony rysunków ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|MapaObrazu|obraz{{=}}Wikipedia-logo.svg|rozmiar{{=}}x35px|link{{=}}{{s|LinkPediaGłówna|_|Wikipedia|bez znaczników{{=}}tak}}}}}}
| _1 = {{MapaObrazu|obraz=Wikipedia-logo.svg|rozmiar=x35px|link={{lpg|_|Wikipedia|bez znaczników=tak}}}}
| 2 = {{OverflowWiersz|styl=max-height:300px;|{{Pre|
{{s|MapaObrazu
| obraz {{=}} JoshuaReynoldsParty.jpg
| ramka {{=}} mały
| pozycja {{=}} centruj
| rozmiar {{=}} 400px
| alt {{=}} Dining room with nine men seated around a table. The dinner has been finished, and a large man at the head talks and gesticulates while the others eagerly listen. The men wear wigs and clothing of late 18th century Britain, and the furniture, hangings, and chandelier are of similar vintage. A liveried servant is entering with a tray bearing two high-shouldered decanters of wine.
| opis {{=}} Image map example. Clicking on a person in the picture causes the browser to load the appropriate article.
| wielokąt {{=}} 133 343 124 287 159 224 189 228 195 291 222 311 209 343 209 354 243 362 292 466 250 463
| wielokąt 2 {{=}} 76 224 84 255 43 302 62 400 123 423 121 361 137 344 122 290 111 234 96 225
| wielokąt 3 {{=}} 190 276 208 240 229 228 247 238 250 258 286 319 282 323 223 323 220 301 200 295
| wielokąt 4 {{=}} 308 317 311 270 328 261 316 246 320 228 343 227 357 240 377 274 366 284 352 311 319 324
| wielokąt 5 {{=}} 252 406 313 343 341 343 366 280 383 273 372 251 378 222 409 228 414 280 420 292 390 300 374 360 359 437 306 418 313 391 272 415
| wielokąt 6 {{=}} 455 238 484 253 505 303 495 363 501 377 491 443 429 439 423 375 466 352
| wielokąt 7 {{=}} 501 279 546 237 567 239 572 308 560 326 537 316 530 300 502 289
| wielokąt 8 {{=}} 572 453 591 446 572 373 603 351 562 325 592 288 573 260 573 248 591 243 615 254 637 280 655 334 705 396 656 419 625 382 609 391 613 453
| wielokąt 9 {{=}} 503 192 511 176 532 176 534 200 553 219 554 234 541 236 525 261 506 261 511 220 515 215
| link wielokąt {{=}} {{s|lhg|Samuel Johnson|Dr Johnson - Dictionary writer|bez znaczników{{=}}tak}}
| link wielokąt 2 {{=}} {{s|lhg|James Boswell|Boswell - Biographer|bez znaczników{{=}}tak}}
| link wielokąt 3 {{=}} {{s|lhg|Joshua Reynolds|Sir Joshua Reynolds - Host|bez znaczników{{=}}tak}}
| link wielokąt 4 {{=}} {{s|lhg|David Garrick|David Garrick - actor|bez znaczników{{=}}tak}}
| link wielokąt 5 {{=}} {{s|lhg|Edmund Burke|Edmund Burke - statesman|bez znaczników{{=}}tak}}
| link wielokąt 6 {{=}} {{s|lhg|Charles Burney|Charles Burney - music historian|bez znaczników{{=}}tak}}
| link wielokąt 7 {{=}} {{s|lhg|Thomas Warton|Thomas Warton - poet laureate|bez znaczników{{=}}tak}}
| link wielokąt 8 {{=}} {{s|lhg|Oliver Goldsmith|Oliver Goldsmith - writer|bez znaczników{{=}}tak}}
| link wielokąt 9 {{=}} {{s|lhg|Francis Barber|servant - poss. Francis Barber|bez znaczników{{=}}tak}}
| prostokąt {{=}} 418 220 452 287
| prostokąt 2 {{=}} 450 86 584 188
| prostokąt 3 {{=}} 286 87 376 191
| prostokąt 4 {{=}} 12 10 702 500
| link prostokąt {{=}} {{s|lhg|Pasquale Paoli|Pasqual Paoli - Corsican patriot|bez znaczników{{=}}tak}}
| link prostokąt 2 {{=}} {{s|lhg|Joshua Reynolds|prob.The Infant Academy 1782|bez znaczników{{=}}tak}}
| link prostokąt 3 {{=}} {{s|lhg|Joshua Reynolds|An unknown painting|bez znaczników{{=}}tak}}
| link prostokąt 4 {{=}} {{s|lhg|The Club (Literary Club)|Use button to enlarge or use hyperlinks|bez znaczników{{=}}tak}}
| koło {{=}} 100 141 20
| link koło {{=}} {{s|lhg|Joshua Reynolds|An unknown portrait|bez znaczników{{=}}tak}}
}}}}
}}
| _2 = {{MapaObrazu
| obraz = JoshuaReynoldsParty.jpg
| ramka = mały
| pozycja = centruj
| rozmiar = 400px
| alt = Dining room with nine men seated around a table. The dinner has been finished, and a large man at the head talks and gesticulates while the others eagerly listen. The men wear wigs and clothing of late 18th century Britain, and the furniture, hangings, and chandelier are of similar vintage. A liveried servant is entering with a tray bearing two high-shouldered decanters of wine.
| opis = Image map example. Clicking on a person in the picture causes the browser to load the appropriate article.
| wielokąt = 133 343 124 287 159 224 189 228 195 291 222 311 209 343 209 354 243 362 292 466 250 463
| wielokąt 2 = 76 224 84 255 43 302 62 400 123 423 121 361 137 344 122 290 111 234 96 225
| wielokąt 3 = 190 276 208 240 229 228 247 238 250 258 286 319 282 323 223 323 220 301 200 295
| wielokąt 4 = 308 317 311 270 328 261 316 246 320 228 343 227 357 240 377 274 366 284 352 311 319 324
| wielokąt 5 = 252 406 313 343 341 343 366 280 383 273 372 251 378 222 409 228 414 280 420 292 390 300 374 360 359 437 306 418 313 391 272 415
| wielokąt 6 = 455 238 484 253 505 303 495 363 501 377 491 443 429 439 423 375 466 352
| wielokąt 7 = 501 279 546 237 567 239 572 308 560 326 537 316 530 300 502 289
| wielokąt 8 = 572 453 591 446 572 373 603 351 562 325 592 288 573 260 573 248 591 243 615 254 637 280 655 334 705 396 656 419 625 382 609 391 613 453
| wielokąt 9 = 503 192 511 176 532 176 534 200 553 219 554 234 541 236 525 261 506 261 511 220 515 215
| link wielokąt = {{lhg|Samuel Johnson|Dr Johnson - Dictionary writer|bez znaczników=tak}}
| link wielokąt 2 = {{lhg|James Boswell|Boswell - Biographer|bez znaczników=tak}}
| link wielokąt 3 = {{lhg|Joshua Reynolds|Sir Joshua Reynolds - Host|bez znaczników=tak}}
| link wielokąt 4 = {{lhg|David Garrick|David Garrick - actor|bez znaczników=tak}}
| link wielokąt 5 = {{lhg|Edmund Burke|Edmund Burke - statesman|bez znaczników=tak}}
| link wielokąt 6 = {{lhg|Charles Burney|Charles Burney - music historian|bez znaczników=tak}}
| link wielokąt 7 = {{lhg|Thomas Warton|Thomas Warton - poet laureate|bez znaczników=tak}}
| link wielokąt 8 = {{lhg|Oliver Goldsmith|Oliver Goldsmith - writer|bez znaczników=tak}}
| link wielokąt 9 = {{lhg|Francis Barber|servant - poss. Francis Barber|bez znaczników=tak}}
| prostokąt = 418 220 452 287
| prostokąt 2 = 450 86 584 188
| prostokąt 3 = 286 87 376 191
| prostokąt 4 = 12 10 702 500
| link prostokąt = {{lhg|Pasquale Paoli|Pasqual Paoli - Corsican patriot|bez znaczników=tak}}
| link prostokąt 2 = {{lhg|Joshua Reynolds|prob.The Infant Academy 1782|bez znaczników=tak}}
| link prostokąt 3 = {{lhg|Joshua Reynolds|An unknown painting|bez znaczników=tak}}
| link prostokąt 4 = {{lhg|The Club (Literary Club)|Use button to enlarge or use hyperlinks|bez znaczników=tak}}
| koło = 100 141 20
| link koło = {{lhg|Joshua Reynolds|An unknown portrait|bez znaczników=tak}}
}}
| 3 = {{Tt|{{s|Plik|plik{{=}}Cyanocitta-cristata-004.jpg|ramka{{=}}mały|pozycja{{=}}prawo|opis{{=}}Modrosójka błękitna|alt{{=}}Roślina|link{{=}}w:Rośliny}}}}
| _3 = {{Plik|plik=Cyanocitta-cristata-004.jpg|ramka=mały|pozycja=prawo|opis=Modrosójka błękitna|alt=Roślina|link=w:Rośliny}}
| 4 = {{Tt|{{s|Rysunek|plik{{=}}Coord_planes_color_point_pl.svg|uchwyt{{=}}A|opis{{=}}To jest opis rysunku|pozycja{{=}}prawo|rozmiar{{=}}200px}}
{{DivClear|left}}}}
| _4 = {{Rysunek|plik=Coord_planes_color_point_pl.svg|uchwyt=A|opis=To jest opis rysunku|pozycja=prawo|rozmiar=200px}}
{{DivClear|left}}
| 5 = {{Pre|{{s|Galeria
| 1 {{=}} Diphasiastrum alpinum distribution in Poland.svg
| _1 {{=}} Występowanie widlicza alpejskiego w Polsce.
| 2 {{=}} DIphasiastrum alpinum Diphasiastrum oellgaardii 01092013.JPG
| _2 {{=}} Widlicz alpejski na alpejskiej murawie.
| 3 {{=}} Diphasiastrum alpinum.jpg
| _3 {{=}} Widlicz alpejski przed rozwinięciem kłosów zarodnionośnych.
| 4 {{=}} Diphasiastrum alpinum 100911.JPG
| _4 {{=}} Widlicz alpejski z kłosami zarodnionośnymi.
| 5 {{=}} Diphasiastrum alpinum, J. Garmendia 2409.JPG
| _5 {{=}} Widlicz alpejski z kłosami zarodnionośnymi.
| 6 {{=}} Diphasiastrum alpinum 100911c.JPG
| _6 {{=}} Widlicz alpejski z dojrzałymi kłosami zarodnionośnymi.
}}}}
| _5 = {{Galeria
| 1 = Diphasiastrum alpinum distribution in Poland.svg
| _1 = Występowanie widlicza alpejskiego w Polsce.
| 2 = DIphasiastrum alpinum Diphasiastrum oellgaardii 01092013.JPG
| _2 = Widlicz alpejski na alpejskiej murawie.
| 3 = Diphasiastrum alpinum.jpg
| _3 = Widlicz alpejski przed rozwinięciem kłosów zarodnionośnych.
| 4 = Diphasiastrum alpinum 100911.JPG
| _4 = Widlicz alpejski z kłosami zarodnionośnymi.
| 5 = Diphasiastrum alpinum, J. Garmendia 2409.JPG
| _5 = Widlicz alpejski z kłosami zarodnionośnymi.
| 6 = Diphasiastrum alpinum 100911c.JPG
| _6 = Widlicz alpejski z dojrzałymi kłosami zarodnionośnymi.
}}
}}
== Rozmieszczenie tekstu na stronie ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|Kolumny|2|
Zdobycze niemieckie na zachodzie słowiańskim 61
Pojezierze Pruskie i Pomorskie 68 - 69
Dolina Warty i Noteci 92.
Wyżyna i zatoka śląska 108—9.
}}}}
| _1 = {{Kolumny|2|
Zdobycze niemieckie na zachodzie słowiańskim 61
Pojezierze Pruskie i Pomorskie 68 - 69
Dolina Warty i Noteci 92.
Wyżyna i zatoka śląska 108—9.
}}
| h_2 = 450px
| 2 = {{Pre|{{s|Układ wielokolumnowy|szerokość {{=}} 200px|
* Agami
* Aleksandria – Port Wschodni
* Aleksandria – Port Zachodni
* Amreya
* Anfoushi
* Assafra
* Attarine
* Azarita (''Mazarita'', oryginalnie ''Lazarette'')
* Bab Sidra
* Bahari
* Bachus
* Bulkeley (''Bokla'')
* Burg el-Arab
* Cleopatra
* Dekheila
* Śródmieście
* Fleming
* Gabbari (''Qabbari'')
* Gianaclis
* Glym (skrót od ''Glymenopoulos'')
* Gumrok
* Hadara
* Ibrahimeya
* Kabbary (''Qabbary'')
* King Mariout
* Kafr Abdu
* Karmous (''Karmouz'')
* Kom el-Dik (''Kom el-Dekka'')
* Labban
* Laurent
* Maamoura Beach
* Maamoura
* Mafrouza
* Mandara
* Manshiyya
* Mex
* Miami
* Montaza
* Muharram Bey
* Mustafa Kamel
* Ramleh (''el-Raml'')
* Ras el-Tin
* Rushdy
* Saba Pasha
* San Stefano
* Shatby
* Schutz
* Sidi Bishr
* Sidi Gaber
* Smouha
* Sporting
* Stanley
* Syouf
* Tharwat
* Victoria
* Wardeyan
* Zizinia
}}}}
| _2 = {{Układ wielokolumnowy|szerokość = 200px|
* Agami
* Aleksandria – Port Wschodni
* Aleksandria – Port Zachodni
* Amreya
* Anfoushi
* Assafra
* Attarine
* Azarita (''Mazarita'', oryginalnie ''Lazarette'')
* Bab Sidra
* Bahari
* Bachus
* Bulkeley (''Bokla'')
* Burg el-Arab
* Cleopatra
* Dekheila
* Śródmieście
* Fleming
* Gabbari (''Qabbari'')
* Gianaclis
* Glym (skrót od ''Glymenopoulos'')
* Gumrok
* Hadara
* Ibrahimeya
* Kabbary (''Qabbary'')
* King Mariout
* Kafr Abdu
* Karmous (''Karmouz'')
* Kom el-Dik (''Kom el-Dekka'')
* Labban
* Laurent
* Maamoura Beach
* Maamoura
* Mafrouza
* Mandara
* Manshiyya
* Mex
* Miami
* Montaza
* Muharram Bey
* Mustafa Kamel
* Ramleh (''el-Raml'')
* Ras el-Tin
* Rushdy
* Saba Pasha
* San Stefano
* Shatby
* Schutz
* Sidi Bishr
* Sidi Gaber
* Smouha
* Sporting
* Stanley
* Syouf
* Tharwat
* Victoria
* Wardeyan
* Zizinia
}}
}}
== Szablony wykorzystywane do budowy innych szablonów ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}|2{{=}}Tak tutaj|test3{{=}}tak|3{{=}}Tak, ale tutaj}}}}
| _1 = {{Pierwszy niepusty|1=|test2=|2=Tak tutaj|test3=tak|3=Tak, ale tutaj}}
| 2 = {{Tt|{{s|Policz linki|[<nowiki>[Ala]], [[Ola]], [[Ela]], [[Ula]]</nowiki>}}}}
| _2 = {{Policz linki|[[Ala]], [[Ola]], [[Ela]], [[Ula]]}}
}}
== Szablony przedstawiające informacje techniczne opisu ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Pre|{{s|Szablonowy opis pudełka
| opis parametrów szablonu {{=}} tak
| nazwa szablonu {{=}} Lua
}}
{{Hr}}
{{s|Szablonowy opis pudełka
| nazwa szablonu {{=}} Lua
}}
}}
| _1 = {{Szablonowy opis pudełka
| opis parametrów szablonu = tak
| nazwa szablonu = Lua
}}
{{Hr}}
{{Szablonowy opis pudełka
| nazwa szablonu = Lua
}}
}}
== Ściąganie elementów z {{NS|k=d|pk=d|l=tak}} ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Wersja oprogramowania|id{{=}}Q11248}}}}
* Pobieranie danych, z Wikidanych, o {{Parametr|id|Q11248}} dla systemu Windows XP.
| _1 = {{Wersja oprogramowania|id=Q11248}}
}}
== Szablony techniczne do wstawienia do tekstu ==
{{EfektKodów
| 1 = {{Tt|{{s|Akord|c2{{=}}|e2{{=}}|g2{{=}}}}}}
| _1 = {{Akord|c2=|e2=|g2=}}
| 2 = {{Tt|{{s|Klawisz|Enter}}}}
| _2 = {{Klawisz|Enter}}
| 3 = {{Tt|{{s|Rummikub|czerni|black}}}}
| _3 = {{Rummikub|czerni|black}}
}}
== Szablony map lokalizacyjnych ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Mapa lokalizacyjna/punkt|49°39′00″N 21°10′00″E|opis{{=}}Gorlice}}}}
| _1 = {{Nowiki|{{Mapa lokalizacyjna/punkt|49°39′00″N 21°10′00″E|opis=Gorlice}}}}
| 2 = {{Pre|{{s|Mapa lokalizacyjna
| mapa {{=}} Polska
| wariant {{=}} 1945
| punkty mapy {{=}}
{{s|Mapa lokalizacyjna/punkt|49°39′00″N 21°10′00″E|opis{{=}}Gorlice}}
}}}}
| _2 = {{Mapa lokalizacyjna
| mapa = Polska
| wariant = 1945
| punkty mapy =
{{Mapa lokalizacyjna/punkt|49°39′00″N 21°10′00″E|opis=Gorlice}}
}}
| 3 = {{Pre|{{s|Tabelka|klasa{{=}}infobox|{{s|Infobox mapa lokalizacyjna
| mapa {{=}} Warszawa
| wariant {{=}} 1997
| współrzędne {{=}} 52°17'04.4"N 20°56'31.7"E
| opis {{=}} Harcerski Klub Łączności SP5ZIP{{s|Br}}im. hm. Wacława Łukaszewicza
| kategoria {{=}} Jednostka harcerska infobox
}}}}
}}
| _3 = {{Tabelka|klasa=infobox|{{Infobox mapa lokalizacyjna
| mapa = Warszawa
| wariant = 1997
| współrzędne = 52°17'04.4"N 20°56'31.7"E
| opis = Harcerski Klub Łączności SP5ZIP{{Br}}im. hm. Wacława Łukaszewicza
| kategoria = Jednostka harcerska infobox
}}}}
| 4 = {{Tt|{{s|Współrzędne|57°18′22″N 4°27′32″W|umieść{{=}}w tekście}}}} i jego przekierowanie {{Tt|{{s|Koordynaty|57°18′22″N 4°27′32″W|umieść{{=}}w tekście}}}}
| _4 = {{Współrzędne|57°18′22″N 4°27′32″W|umieść=w tekście}}
}}
== Szablony flag ==
=== Szablon bander {{s|Bandera}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Bandera|POL}}}} | _1 = {{Bandera|POL}}
| 2 = {{Tt|{{s|Bandera|POL|PRL}}}} | _2 = {{Bandera|POL|PRL}}
| 3 = {{Tt|{{s|Bandera|POL|wariant{{=}}PRL}}}} | _3 = {{Bandera|POL|wariant=PRL}}
| 4 = {{Tt|{{s|Bandera|POL|nazwa{{=}}Kraków}}}} | _4 = {{Bandera|POL|nazwa=Kraków}}
| 5 = {{Tt|{{s|Bandera|POL|rozmiar{{=}}40px}}}} | _5 = {{Bandera|POL|rozmiar=40px}}
| 6 = {{Tt|{{s|Bandera|POL|altlink{{=}}Kraków}}}} | _6 = {{Bandera|POL|altlink=Kraków}}
}}
=== Szablon bander {{s|BanderaD}} ===
{{EfektKodów
| 1 = {{Tt|{{s|BanderaD|POL}}}} | _1 = {{BanderaD|POL}}
}}
=== Szablon flaga {{s|Flaga}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Flaga|POL}}}} | _1 = {{Flaga|POL}}
| 2 = {{Tt|{{s|Flaga|POL|RON}}}} | _2 = {{Flaga|POL|RON}}
| 3 = {{Tt|{{s|Flaga|POL|wariant{{=}}RON}}}} | _3 = {{Flaga|POL|wariant=RON}}
| 4 = {{Tt|{{s|Flaga|POL|rozmiar{{=}}40px}}}} | _4 = {{Flaga|POL|rozmiar=40px}}
| 5 = {{Tt|{{s|Flaga|POL|altlink{{=}}Kraków}}}} | _5 = {{Flaga|POL|altlink=Kraków}}
}}
==== Szablony flag podręczników ====
{{EfektKodów
| 1 = {{Tt|{{s|En}}}} | _1 = {{En}}
| 2 = {{Tt|{{s|Esp}}}} | _2 = {{Esp}}
| 3 = {{Tt|{{s|Gre}}}} | _3 = {{Gre}}
| 4 = {{Tt|{{s|Pl}}}} | _4 = {{Pl}}
| 5 = {{Tt|{{s|Slv}}}} | _5 = {{Slv}}
| 6 = {{Tt|{{s|Svk}}}} | _6 = {{Svk}}
}}
==== Brak flagi {{s|Brak flagi}} ====
{{EfektKodów
| 1 = {{Tt|{{s|Brak flagi|{{s|lpg|Polska}}}}}} | _1 = {{Brak flagi|{{lpg|Polska}}}}
}}
=== Szablon {{s|Flaga grafika}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Flaga grafika|Flag of None.svg}}}} | _1 = {{Flaga grafika|Flag of None.svg}}
| 2 = {{Tt|{{s|Flaga grafika|Flag of None.svg|Lorem ipsum}}}} | _2 = {{Flaga grafika|Flag of None.svg|Lorem ipsum}}
}}
=== Szablon {{s|Ilustracja flagi}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Ilustracja flagi|POL}}}} | _1 = {{Ilustracja flagi|POL}}
| 2 = {{Tt|{{s|Ilustracja flagi|POL|RON}}}} | _2 = {{Ilustracja flagi|POL|RON}}
| 3 = {{Tt|{{s|Ilustracja flagi|POL|wariant{{=}}RON}}}} | _3 = {{Ilustracja flagi|POL|wariant=RON}}
}}
=== Szablon {{s|Państwo}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Państwo|Polska}}}} | _1 = {{Państwo|Polska}}
| 2 = {{Tt|{{s|Państwo|Polska|PRL}}}} | _2 = {{Państwo|Polska|PRL}}
| 3 = {{Tt|{{s|Państwo|Polska|nazwa{{=}}Kraków}}}} | _3 = {{Państwo|Polska|nazwa=Kraków}}
| 4 = {{Tt|{{s|Państwo|Polska|rozmiar{{=}}40px}}}} | _4 = {{Państwo|Polska|rozmiar=40px}}
| 5 = {{Tt|{{s|Państwo|Polska|altlink{{=}}Kraków}}}} | _5 = {{Państwo|Polska|altlink=Kraków}}
}}
=== Szablony państw inne niż {{s|Państwo}} ===
{{EfektKodów
| 1 = {{Tt|{{s|PaństwoD|Polska}}}} | _1 = {{PaństwoD|Polska}}
| 2 = {{Tt|{{s|PaństwoL|Polska}}}} | _2 = {{PaństwoL|Polska}}
| 3 = {{Tt|{{s|PaństwoR|Polska|LIO}}}} | _3 = {{PaństwoR|Polska|LIO}}
| 4 = {{Tt|{{s|Państwolink|Polska|Kraków|wariant{{=}}PRL}}}} | _4 = {{Państwolink|Polska|Kraków|wariant=PRL}}
| 5 = {{Tt|{{s|Państwoskrót|Polska}}}} | _5 = {{Państwoskrót|Polska}}
}}
=== Szablony państw grafik - {{s|Państwo grafika}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Państwo grafika|Flag of None.svg|Lorem ipsum}}}} | _1 = {{Państwo grafika|Flag of None.svg|Lorem ipsum}}
| 2 = {{Tt|{{s|Państwo grafika|Flag of None.svg|Lorem ipsum|link}}}} | _2 = {{Państwo grafika|Flag of None.svg|Lorem ipsum|link}}
| 3 = {{Tt|{{s|Państwo grafika|Red flag.svg|Lorem ipsum|rozmiar{{=}}40x40px}}}} | _3 = {{Państwo grafika|Red flag.svg|Lorem ipsum|rozmiar=40x40px}}
| 4 = {{Tt|{{s|Państwo grafika|Ethiopian Pennants.svg|rozmiar{{=}}40x40px|Lorem ipsum}}}} | _4 = {{Państwo grafika|Ethiopian Pennants.svg|rozmiar=40x40px|Lorem ipsum}}
| 5 = {{Tt|{{s|Państwo grafika|Ethiopian Pennants.svg|Lorem ipsum|rozmiar{{=}}40x40px|border{{=}}}}}} | _5 = {{Państwo grafika|Ethiopian Pennants.svg|Lorem ipsum|rozmiar=40x40px|border=}}
}}
=== Szablony państw grafik - {{s|PaństwoL grafika}} ===
{{EfektKodów
| 1 = {{Tt|{{s|PaństwoL grafika|Flag of None.svg|Lorem ipsum}}}} | _1 = {{PaństwoL grafika|Flag of None.svg|Lorem ipsum}}
| 2 = {{Tt|{{s|PaństwoL grafika|Flag of None.svg|Lorem ipsum|link}}}} | _2 = {{PaństwoL grafika|Flag of None.svg|Lorem ipsum|link}}
| 3 = {{Tt|{{s|PaństwoL grafika|Red flag.svg|Lorem ipsum|rozmiar{{=}}40x40px}}}} | _3 = {{PaństwoL grafika|Red flag.svg|Lorem ipsum|rozmiar=40x40px}}
| 4 = {{Tt|{{s|PaństwoL grafika|Ethiopian Pennants.svg|rozmiar{{=}}40x40px|Lorem ipsum}}}} | _4 = {{PaństwoL grafika|Ethiopian Pennants.svg|rozmiar=40x40px|Lorem ipsum}}
| 5 = {{Tt|{{s|PaństwoL grafika|Ethiopian Pennants.svg|Lorem ipsum|rozmiar{{=}}40x40px|border{{=}}}}}} | _5 = {{PaństwoL grafika|Ethiopian Pennants.svg|Lorem ipsum|rozmiar=40x40px|border=}}
}}
=== Szablony mistrzostw - {{s|Państwo mistrzostwa}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Państwo mistrzostwa|Polska|LMŚ 2013}}}} | _1 = {{Państwo mistrzostwa|Polska|LMŚ 2013}}
| 2 = {{Tt|{{s|Państwo mistrzostwa|POL|LMŚ 2013}}}} | _2 = {{Państwo mistrzostwa|POL|LMŚ 2013}}
| 3 = {{Tt|{{s|Państwo mistrzostwa|Stany Zjednoczone|LMŚ 2013}}}} | _3 = {{Państwo mistrzostwa|Stany Zjednoczone|LMŚ 2013}}
}}
=== Szablony skrótów map państw ===
{{EfektKodów
| 1 = {{Tt|{{s|Mapa|Polska}}}} | _1 = {{Mapa|Polska}}
| 2 = {{Tt|{{s|Mapa|Polska|PRL}}}} | _2 = {{Mapa|Polska|PRL}}
| 3 = {{Tt|{{s|Mapa|Polska|wariant{{=}}PRL}}}} | _3 = {{Mapa|Polska|wariant=PRL}}
}}
=== Szablony jednostek administracyjnych ===
{{EfektKodów
| 1 = {{Tt|{{s|Jednostki administracyjne|Polska}}}} | _1 = {{Jednostki administracyjne|Polska}}
| 2 = {{Tt|{{s|Jednostki administracyjne|Polska|PRL}}}} | _2 = {{Jednostki administracyjne|Polska|PRL}}
| 3 = {{Tt|{{s|Jednostki administracyjne|Polska|wariant{{=}}PRL}}}} | _3 = {{Jednostki administracyjne|Polska|wariant=PRL}}
}}
=== Reprezentacja ===
{{EfektKodów
| 1 = {{Tt|{{s|Reprezentacja|POL|pn}}}} | _1 = {{Reprezentacja|POL|pn}}
| 2 = {{Tt|{{s|ReprezentacjaL|POL|pn}}}} | _2 = {{ReprezentacjaL|POL|pn}}
| 3 = {{Tt|{{s|ReprezentacjaD|POL|pn}}}} | _3 = {{ReprezentacjaD|POL|pn}}
| 4 = {{Tt|{{s|Reprezentacja|DEU|wariant{{=}}DDR|pn}}}} | _4 = {{Reprezentacja|DEU|wariant=DDR|pn}}
| 5 = {{Tt|{{s|Reprezentacja|DEU|pn|rodzaj{{=}}U-21}}}} | _5 = {{Reprezentacja|DEU|pn|rodzaj=U-21}}
| 6 = {{Tt|{{s|ReprezentacjaL|DEU|wariant{{=}}DDR|pn}}}} | _6 = {{ReprezentacjaL|DEU|wariant=DDR|pn}}
| 7 = {{Tt|{{s|ReprezentacjaL|DEU|pn|rodzaj{{=}}U-21}}}} | _7 = {{ReprezentacjaL|DEU|pn|rodzaj=U-21}}
| 8 = {{Tt|{{s|ReprezentacjaD|DEU|wariant{{=}}DDR|pn}}}} | _8 = {{ReprezentacjaD|DEU|wariant=DDR|pn}}
| 9 = {{Tt|{{s|ReprezentacjaD|DEU|pn|rodzaj{{=}}U-21}}}} | _9 = {{ReprezentacjaD|DEU|pn|rodzaj=U-21}}
}}
=== Szablony związane z militariami ===
{{EfektKodów
| 1 = {{Tt|{{s|FIAV|100000}}}} | _1 = {{FIAV|100000}}
| 2 = {{Tt|{{s|FIAV|proposal}}}} | _2 = {{FIAV|proposal}}
}}
=== Szablony związane z rugby ===
{{EfektKodów
| 1 = {{Tt|{{s|Zespół ru|Blues|L}}}} | _1 = {{Zespół ru|Blues|L}}
| 2 = {{Tt|{{s|Zespół ru|Connacht|P}}}} | _2 = {{Zespół ru|Connacht|P}}
| 3 = {{Tt|{{s|Zespół ru|Quins}}}} | _3 = {{Zespół ru|Quins}}
| 4 = {{Tt|{{s|Zespół ru|Cats|L|1910}}}} | _4 = {{Zespół ru|Cats|L|1910}}
}}
=== Szablony terytorium ===
{{EfektKodów
| 1 = {{Tt|{{s|Terytorium zależne|MTQ}}}} | _1 = {{Terytorium zależne|MTQ}}
| 2 = {{Tt|{{s|Nazwa terytorium|MTQ}}}} | _2 = {{Nazwa terytorium|MTQ}}
}}
== Szablony do obliczeń matematycznych ==
=== Szablony warunkowe ===
==== Szablon {{s|Jeśli równe}} ====
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|Jeśli równe|1|2|wtedy{{=}}<nowiki><MATH>1 = 2</MATH></nowiki>|przeciwnie{{=}}<nowiki><math>1 \neq 2</math></nowiki>}}}}
| _1 = {{Jeśli równe|1|2|wtedy=<math>1 = 2</math>|przeciwnie=<math>1 \neq 2</math>}}
| 2 = {{Tt|{{s|Jeśli równe|1cm|10mm|wtedy{{=}}<nowiki><MATH>1cm = 10mm</MATH></nowiki>|przeciwnie{{=}}<nowiki><MATH>1cm \neq 10mm</MATH></nowiki>}}}}
| _2 = {{Jeśli równe|1cm|10mm|wtedy=<MATH>1cm = 10mm</MATH>|przeciwnie=<MATH>1cm \neq 10mm</MATH>}}
| 3 = {{Tt|{{s|Jeśli równe|15px|16Q|dokładność{{=}}0|wtedy{{=}}<nowiki><MATH>15px = 16Q</MATH></nowiki>|przeciwnie{{=}}<nowiki><MATH>15px \neq 16Q</MATH></nowiki>}}}}
| _3 = {{Jeśli równe|15px|16Q|dokładność=0|wtedy=<math>15px = 16Q</math>|przeciwnie=<math>15px \neq 16Q</math>}}
| 4 = {{Tt|{{s|Jeśli równe|Konik|Konik|wtedy{{=}}Konik to Konik|przeciwnie{{=}}co???}}}}
| _4 = {{Jeśli równe|Konik|Konik|wtedy=Konik to Konik|przeciwnie=co???}}
| 5 = {{Tt|{{s|Jeśli równe|Konik|Konik|inaczej{{=}}tak|łącznik{{=}}<nowiki><MATH>\neq</MATH></nowiki>}}}}
| _5 = {{Jeśli równe|Konik|Konik|inaczej=tak|łącznik=<MATH>\neq</MATH>}}
| 6 = {{Tt|{{s|Jeśli równe|Konik|Kucyk|inaczej{{=}}tak|łącznik{{=}}<nowiki><MATH>\neq</MATH></nowiki>}}}}
| _6 = {{Jeśli równe|Konik|Kucyk|inaczej=tak|łącznik=<MATH>\neq</MATH>}}
| 7 = {{Tt|{{s|Jeśli równe|Konik||inaczej{{=}}tak|łącznik{{=}}<nowiki><MATH>\neq</MATH></nowiki>}}}}
| _7 = {{Jeśli równe|Konik||inaczej=tak|łącznik=<MATH>\neq</MATH>}}
| 8 = {{Tt|{{s|Jeśli równe||Konik|inaczej{{=}}tak|łącznik{{=}}<nowiki><MATH>\neq</MATH></nowiki>}}}}
| _8 = {{Jeśli równe||Konik|inaczej=tak|łącznik=<MATH>\neq</MATH>}}
}}
==== Jeśli większe ====
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|#if:{{s|Jeśli większe|1cm|20px}}|Tak|Nie}}}}
| _1 = {{#if:{{Jeśli większe|1cm|20px}}|Tak|Nie}}
| 2 = {{Tt|{{s|#if:{{s|Jeśli większe|20px|1cm}}|Tak|Nie}}}}
| _2 = {{#if:{{Jeśli większe|20px|1cm}}|Tak|Nie}}
| 3 = {{Tt|{{s|#if:{{s|Jeśli większe|2|1}}|Tak|Nie}}}}
| _3 = {{#if:{{Jeśli większe|2|1}}|Tak|Nie}}
| 4 = {{Tt|{{s|#if:{{s|Jeśli większe|1|2}}|Tak|Nie}}}}
| _4 = {{#if:{{Jeśli większe|1|2}}|Tak|Nie}}
}}
==== Szablony typowo warunkowe ====
===== Szablony typu '''Jeśli''' =====
====== Szablon {{s|Jeśli niepuste}} ======
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|Jeśli niepuste|1|2}}}}
| _1 = {{Jeśli niepuste|1|2}}
| 2 = {{Tt|{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b}}}}
| _2 = {{Jeśli niepuste|1|2|przed=a|po=b}}
| 3 = {{Tt|{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d}}}}
| _3 = {{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d}}
| 4 = {{Tt|{{s|Jeśli niepuste||2}}}}
| _4 = {{Jeśli niepuste||2}}
| 5 = {{Tt|{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _5 = {{Jeśli niepuste|1|2|przed=a|po=b|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}
| 6 = {{Tt|{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _6 = {{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}
| 7 = {{Tt|{{s|Jeśli niepuste||2|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _7 = {{Jeśli niepuste||2|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}
| 8 = {{Tt|{{s|Jeśli niepuste||2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _8 = {{Jeśli niepuste||2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}
| 9 = {{Tt|{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _9 = {{Jeśli niepuste|1|2|przed=a|po=b|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}
| 10 = {{Tt|{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _10 = {{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}
| 11 = {{Tt|{{s|Jeśli niepuste||2|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _11 = {{Jeśli niepuste||2|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}
| 12 = {{Tt|{{s|Jeśli niepuste||2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _12 = {{Jeśli niepuste||2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}
| 13 = {{Tt|{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _13 = {{Jeśli niepuste|1|2|przed=a|po=b|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}
| 14 = {{Tt|{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _14 = {{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}
| 15 = {{Tt|{{s|Jeśli niepuste||2|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _15 = {{Jeśli niepuste||2|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}
| 16 = {{Tt|{{s|Jeśli niepuste||2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _16 = {{Jeśli niepuste||2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}
}}
====== Szablon {{s|Jeśli niepuste komunikat}} ======
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|Ambox|typ{{=}}poważny|tekst{{=}}{{s|Jeśli niepuste komunikat|<nowiki><ul><li>Oto jest błąd.</li></ul></nowiki>|NPA|Tekst szablonu.}}}}}}
| _1 = {{Ambox|typ=poważny|tekst={{Jeśli niepuste komunikat|<ul><li>Oto jest błąd.</li></ul>|NPA|Tekst szablonu.}}}}
| 2 = {{Pre|{{s|Ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat||NPA|Tekst szablonu.}}}}}}
| _2 = {{Ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat||NPA|Tekst szablonu.}}}}
| 3 = {{Pre|{{s|Ambox|typ{{=}}poważny|tekst{{=}}{{s|Jeśli niepuste komunikat|<nowiki><ul><li>Oto jest błąd.</li></ul></nowiki>|wtedy{{=}}<nowiki>'''</nowiki>Szablon zgłosił następujące błędy:<nowiki>'''</nowiki>|przeciwnie{{=}}Tekst szablonu.}}}}}}
| _3 = {{Ambox|typ=poważny|tekst={{Jeśli niepuste komunikat|<ul><li>Oto jest błąd.</li></ul>|wtedy='''Szablon zgłosił następujące błędy:'''|przeciwnie=Tekst szablonu.}}}}
| 4 = {{Pre|{{s|Ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat||wtedy{{=}}<nowiki>'''</nowiki>Szablon zgłosił następujące błędy:<nowiki>'''</nowiki>|przeciwnie{{=}}Tekst szablonu.}}}}}}
| _4 = {{Ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat||wtedy='''Szablon zgłośił następujące błędy:'''|przeciwnie=Tekst szablonu.}}}}
}}
====== Szablon {{s|Jeśli niepuste}} ======
{{EfektKodów
| 1 = {{Tt|{{s|Jeśli istnieje|Spis treści|Strona główna|przedrostek{{=}}Pomoc:}}}}
| _1 = {{Jeśli istnieje|Spis treści|Strona główna|przedrostek=Pomoc:}}
| 2 = {{Tt|{{s|Jeśli istnieje|Strona główna|Spis treści|przedrostek{{=}}Pomoc:}}}}
| _2 = {{Jeśli istnieje|Strona główna|Spis treści|przedrostek=Pomoc:}}
}}
===== Szablon {{s|Pierwszy niepusty}} =====
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|2{{=}}Tak tutaj}}}}
| _1 = {{Pierwszy niepusty|1=|2=Tak tutaj}}
| 2 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}tak|2{{=}}Tak tutaj}}}}
| _2 = {{Pierwszy niepusty|1=|test2=tak|2=Tak tutaj}}
| 3 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}|2{{=}}Tak tutaj|test3{{=}}tak|3{{=}}Tak, ale tutaj}}}}
| _3 = {{Pierwszy niepusty|1=|test2=|2=Tak tutaj|test3=tak|3=Tak, ale tutaj}}
| 4 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}|2{{=}}Tak tutaj|3{{=}}Tak, ale tutaj}}}}
| _4 = {{Pierwszy niepusty|1=|test2=|2=Tak tutaj|3=Tak, ale tutaj}}
| 5 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}|2{{=}}Tak tutaj|test3{{=}}tak}}}}
| _5 = {{Pierwszy niepusty|1=|test2=|2=Tak tutaj|test3=tak}}
}}
=== Szablony jednostek ===
{{EfektKodów
| 1 = {{Tt|{{s|Liczba z absolutną jednostką długości|2}}}}
| _1 = {{Liczba z absolutną jednostką długości|2}}
| 2 = {{Tt|{{s|Liczba z absolutną jednostką długości|2px}}}}
| _2 = {{Liczba z absolutną jednostką długości|2px}}
| 3 = {{Tt|{{s|Maksimum|1|2}}}}
| _3 = {{Maksimum|1|2}}
| 4 = {{Tt|{{s|Maksimum|2|1}}}}
| _4 = {{Maksimum|2|1}}
| 5 = {{Tt|{{s|Maksimum|40px|1cm}}}}
| _5 = {{Maksimum|40px|1cm}}
| 6 = {{Tt|{{s|Minimum|1|2}}}}
| _6 = {{Minimum|1|2}}
| 7 = {{Tt|{{s|Minimum|2|1}}}}
| _7 = {{Minimum|2|1}}
| 8 = {{Tt|{{s|Minimum|40px|1cm}}}}
| _8 = {{Minimum|40px|1cm}}
| 9 = {{Tt|{{s|W pikselach|15px}}}}
| _9 = {{W pikselach|15px}}
| 10 = {{Tt|{{s|W pikselach|15pc}}}}
| _10 = {{W pikselach|15pc}}
| 11 = {{Tt|{{s|W pikselach|15pt}}}}
| _11 = {{W pikselach|15pt}}
| 12 = {{Tt|{{s|W pikselach|15in}}}}
| _12 = {{W pikselach|15in}}
| 13 = {{Tt|{{s|W pikselach|15Q}}}}
| _13 = {{W pikselach|15Q}}
| 14 = {{Tt|{{s|W pikselach|15mm}}}}
| _14 = {{W pikselach|15mm}}
| 15 = {{Tt|{{s|W pikselach|15cm}}}}
| _15 = {{W pikselach|15cm}}
| 16 = {{Tt|{{s|W pikselach|15cm|7}}}}
| _16 = {{W pikselach|15cm|7}}
| 17 = {{Tt|{{s|W pikselach|15cm|-2}}}}
| _17 = {{W pikselach|15cm|-2}}
}}
=== Szablony funkcji matematycznych ===
{{EfektKodów
| 1 = {{Tt|{{s|Ogranicz|100}}}}
| _1 = {{Ogranicz|100}}
| 2 = {{Tt|{{s|Ogranicz|300}}}}
| _2 = {{Ogranicz|300}}
| 3 = {{Tt|{{s|Ogranicz|30}}}}
| _3 = {{Ogranicz|30}}
}}
=== Szablony do rozwiązań technicznych ===
{{EfektKodów
| 1 = {{Tt|{{s|Jeśli niepuste|{{s|Void}}|-}}}}
| _1 = {{Jeśli niepuste|{{Void}}|-}}
}}
== Szablony ikon ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|Ikona|archiwum|50|dosuń{{=}}do prawej|alt{{=}}Wyświetlany zamiast rysunku.|opis{{=}}Oto jest archiwum.}}}}}
| _1 = {{Ikona|archiwum|50|dosuń=do prawej|alt=Wyświetlany zamiast rysunku.|opis=Oto jest archiwum.}}
| 2 = {{Tt|{{s|Ikona|meta|75|dosuń{{=}}do lewej|alt{{=}}Wyświetlany zamiast rysunku.|opis{{=}}Oto jest archiwum.}}}}}
| _2 = {{Ikona|meta|75|dosuń=do lewej|alt=Wyświetlany zamiast rysunku.|opis=Oto jest archiwum.}}
| 3 = {{Tt|{{s|Ikona|promocja|35|dosuń{{=}}do środka|alt{{=}}Wyświetlany zamiast rysunku.|opis{{=}}Oto jest archiwum.}}}}}
| _3 = {{Ikona|promocja|35|dosuń=do środka|alt=Wyświetlany zamiast rysunku.|opis=Oto jest archiwum.}}
}}
== Testowanie szablonu ==
{{EfektKodów
| 1 = {{Tt|{{s|Przypadek testowy|{{=}}Ambox{{s|!}}brudnopis{{s|{{=}}}}Ambox{{s|!}}pionowo|typ{{=}}poważny}}}}
| _1 = Ten szablon generuje tabelę stosowaną na {{lpr|Brudnopisy i strony testowe szablonów|stronach testowych szablonów}}, która zestawia obok siebie dwie wersje szablonów – szablon główny i jego wersję z brudnopisu. Oba przedstawiane szablony wykorzystują te same parametry.
{{Hr}}
{{Przypadek testowy|=Ambox{{!}}brudnopis{{=}}Ambox{{!}}pionowo|typ=poważny}}
}}
== Szablony ciągów i dopasowywanie do wzorca ==
{{EfektKodów|kod-rozmiar=35%
| 1 = {{Tt|{{s|Długość|ciąg{{=}}abc}}}}
| _1 = {{Długość|ciąg=abc}}
| 2 = {{Tt|{{s|Subciąg|ciąg{{=}}1234567|od{{=}}2|do{{=}}4}}}}
| _2 = {{Subciąg|ciąg=1234567|od=2|do=4}}
| 3 = {{Tt|{{s|Subciąg2|ciąg{{=}}1234567|od{{=}}2|długość{{=}}3}}}}
| _3 = {{Subciąg2|ciąg=1234567|od=2|długość=3}}
| 4 = {{Tt|{{s|Dopasuj|ciąg{{=}}123a45b67|wzór{{=}}%a+|które{{=}}2}}}}
| _4 = {{Dopasuj|ciąg=123a45b67|wzór=%a+|które=2}}
| 5 = {{Tt|{{s|Pobierz|ciąg{{=}}1234567|pozycja{{=}}5}}}}
| _5 = {{Pobierz|ciąg=1234567|pozycja=5}}
| 6 = {{Tt|{{s|Wyszukaj|ciąg{{=}}123s456|cel{{=}}s}}}}
| _6 = {{Wyszukaj|ciąg=123s456|cel=s}}
| 7 = {{Tt|{{s|Znajdź|ciąg{{=}}123%s456|cel{{=}}%a}}}}
| _7 = {{Znajdź|ciąg=123%s456|cel=%a}}
| 8 = {{Tt|{{s|Zastąp|ciąg{{=}}123s45s6|wzór{{=}}%a|zamień{{=}}q}}}}
| _8 = {{Zastąp|ciąg=123s45s6|wzór=%a|zamień=q}}
| 9 = {{Tt|{{s|Powtórz|ciąg{{=}}123s456|ile{{=}}2}}}}
| _9 = {{Powtórz|ciąg=123s456|ile=2}}
| 10 = {{Tt|{{s|Łącz|łącznik{{=}}.|parametr{{=}}1|parametr 2{{=}}2|4{{=}}3|parametr 4{{=}}4}}}}
| _10 = {{Łącz|łącznik=.|parametr=1|parametr 2=2|4=3|parametr 4=4}}
}}
== Szablony parsera tag ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|FormularzWejścia|typ{{=}}search|przestrzenie{{=}}Wikijunior|przerwa{{=}}no|szukaj{{=}}Szukaj!}}}}
| _1 = {{FormularzWejścia|typ=search|przestrzenie=Wikijunior|przerwa=no|szukaj=Szukaj!}}
| h_2 = 150px
| 2 = {{Tt|{{s|ListaKategorii|Astronomia i fizyka}}}}
| _2 = {{ListaKategorii|Astronomia i fizyka}}
}}
== Wyświetlane dymki po najechaniu myszką ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|W tym okresie ich genomy pozostają w zakażonych komórkach jako formy latentne. W stanie utajenia ekspresja informacji genetycznej faga jest ograniczona tylko do genów, których produkty są odpowiedzialne za utrzymanie tego stanu (lizogenii) {{s|Odnośnik|[Fortier & Sekulovic, 2013]|Fortier, L. C., & Sekulovic, O. (2013). Importance of prophages to evolution and virulence of bacterial pathogens. Virulence, 4(5), 354-365.}}.}}
| _1 = W tym okresie ich genomy pozostają w zakażonych komórkach jako formy latentne. W stanie utajenia ekspresja informacji genetycznej faga jest ograniczona tylko do genów, których produkty są odpowiedzialne za utrzymanie tego stanu (lizogenii) {{Odnośnik|[Fortier & Sekulovic, 2013]|Fortier, L. C., & Sekulovic, O. (2013). Importance of prophages to evolution and virulence of bacterial pathogens. Virulence, 4(5), 354-365.}}.
}}
{{BrClear}}
<noinclude>{{Kategoria|Wizualne opisy techniczne szablonów}}</noinclude>
nwieojy85j3iq9m017nhhqlows4nze0
557826
557825
2026-09-28T17:56:19Z
Persino
2851
/* Szablon {{s|Pierwszy niepusty}} */
557826
wikitext
text/x-wiki
<noinclude>{{Autonawigacja|Pomoc:Spis treści}}</noinclude>
== Podświetlanie składni - szablony ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|ŹródłoKodu|język{{=}}xml|
{{s|Mniejszy}}ref name{{=}}"Nazwa przypisu"{{s|Większy}}W przypisie może być cokolwiek{{s|Mniejszy}}/ref{{s|Większy}}
{{s|Mniejszy}}ref name{{=}}"Wydawca: Jakiś tytuł"{{s|Większy}}Franciszka Tłumacząca, Przypisy często zawierają odniesienia do literatury lub źródeł internetowych{{s|Mniejszy}}/ref{{s|Większy}}
}}}}
| _1 = {{ŹródłoKodu|język=xml|
{{Mniejszy}}ref name{{=}}"Nazwa przypisu"{{Większy}}W przypisie może być cokolwiek{{Mniejszy}}/ref{{Większy}}
{{Mniejszy}}ref name{{=}}"Wydawca: Jakiś tytuł"{{Większy}}Franciszka Tłumacząca, Przypisy często zawierają odniesienia do literatury lub źródeł internetowych{{Mniejszy}}/ref{{Większy}}
}}
| 2 = {{Pre|{{s|ŹródłoHtml|{{s|Pełny rozdział|Zaczynamy|nazwa przestrzeni nazw{{=}}(main)|nazwa jednostki{{=}}Matematyka dla liceum}}}}}}
| _2 = {{ŹródłoHtml|{{Pełny rozdział|Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum}}}}
| 3 = {{Pre|{{s|ŹródłoCss|
.klasa_jeden{{s|(}}
width:100px;
height:150px;
font-fize:12px;
white-space:nowrap;
{{s|)}}}}}}
| _3 = {{ŹródłoCss|
.klasa_jeden{{(}}
width:100px;
height:150px;
font-size:12px;
white-space:nowrap;
{{)}}}}
| 4 = {{Pre|{{s|ŹródłoXml|
{{s|Mniejszy}}ref name{{s|{{=}}}}"Nazwa przypisu"{{s|Większy}}W przypisie może być cokolwiek{{s|Mniejszy}}/ref{{s|Większy}}
{{s|Mniejszy}}ref name{{s|{{=}}}}"Wydawca: Jakiś tytuł"{{s|Większy}}Franciszka Tłumacząca, ''Przypisy często zawierają odniesienia do literatury lub źródeł internetowych''{{s|Mniejszy}}/ref{{s|Większy}}
}}}}
| _4 = {{ŹródłoXml|
{{Mniejszy}}ref name{{=}}"Nazwa przypisu"{{Większy}}W przypisie może być cokolwiek{{Mniejszy}}/ref{{Większy}}
{{Mniejszy}}ref name{{=}}"Wydawca: Jakiś tytuł"{{Większy}}Franciszka Tłumacząca, Przypisy często zawierają odniesienia do literatury lub źródeł internetowych{{Mniejszy}}/ref{{Większy}}
}}
}}
== Pobieranie danych ze strony ==
{{EfektKodów|kod-rozmiar=35%
| 1 = {{Tt|{{s|ŹródłoCss|{{s|LuaSubst|{{Ns:Template}}:Nowraplinki/styles.css}}}}}}
| _1 = {{ŹródłoCss|{{LuaSubst|{{Ns:Template}}:Nowraplinki/styles.css}}}}
}}
== Pobieranie ustawień ze strony ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|PobierzUstawienia|Szablon:Podręcznik/Ustawienia/Szablon:Autonawigacja|artykuł|zmienna klucz}}}}
| _1 = {{PobierzUstawienia|Szablon:Podręcznik/Ustawienia/Szablon:Autonawigacja|artykuł|zmienna klucz}}
}}
== Szablony pobierania ustawień ze swojego wywołania ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|Conf|tytuł
| poza_projektem {{=}} Tutaj jest kod wartości '''poza_projektem'''.
| tytuł {{=}} Tutaj jest kod wartości '''tytuł'''.
| autor {{=}} Tutaj jest kod wartości '''autor'''.
| autor1 {{=}} Tutaj jest kod wartości '''autor1'''.
| sekcja {{=}} Tutaj jest kod wartości '''sekcja'''.
| sekcja2 {{=}} Tutaj jest kod wartości '''sekcja2'''.
| sekcja3 {{=}} Tutaj jest kod wartości '''sekcja3'''.
| sekcja4 {{=}} Tutaj jest kod wartości '''sekcja4'''.
| sekcja5 {{=}} Tutaj jest kod wartości '''sekcja5'''.
| poprzedni {{=}} Tutaj jest kod wartości '''poprzedni'''.
| następny {{=}} Tutaj jest kod wartości '''następny'''.
| adnotacje {{=}} Tutaj jest kod wartości '''adnotacje'''.
| tłumacz {{=}} Tutaj jest kod wartości '''tłumacz'''.
| tłumacz_uwagi {{=}} Tutaj jest kod wartości '''tłumacz_uwagi'''.
| wikitłumacz {{=}} Tutaj jest kod wartości '''wikitłumacz'''.
| stopka {{=}} Tutaj jest kod wartości '''stopka'''.
| wyjście {{=}} Tu znajduje się wartość domyślna.
}}}}
| _1 = {{Conf|tytuł
| poza_projektem = Tutaj jest kod wartości '''poza_projektem'''.
| tytuł = Tutaj jest kod wartości '''tytuł'''.
| autor = Tutaj jest kod wartości '''autor'''.
| autor1 = Tutaj jest kod wartości '''autor1'''.
| sekcja = Tutaj jest kod wartości '''sekcja'''.
| sekcja2 = Tutaj jest kod wartości '''sekcja2'''.
| sekcja3 = Tutaj jest kod wartości '''sekcja3'''.
| sekcja4 = Tutaj jest kod wartości '''sekcja4'''.
| sekcja5 = Tutaj jest kod wartości '''sekcja5'''.
| poprzedni = Tutaj jest kod wartości '''poprzedni'''.
| następny = Tutaj jest kod wartości '''następny'''.
| adnotacje = Tutaj jest kod wartości '''adnotacje'''.
| tłumacz = Tutaj jest kod wartości '''tłumacz'''.
| tłumacz_uwagi = Tutaj jest kod wartości '''tłumacz_uwagi'''.
| wikitłumacz = Tutaj jest kod wartości '''wikitłumacz'''.
| stopka = Tutaj jest kod wartości '''stopka'''.
| wyjście = Tu znajduje się wartość domyślna.
}}
| 2 = {{Pre|{{s|ConfDomyślna|tytuł nieznany
| poza_projektem {{=}} Tutaj jest kod wartości '''poza_projektem'''.
| tytuł {{=}} Tutaj jest kod wartości '''tytuł'''.
| autor {{=}} Tutaj jest kod wartości '''autor'''.
| autor1 {{=}} Tutaj jest kod wartości '''autor1'''.
| sekcja {{=}} Tutaj jest kod wartości '''sekcja'''.
| sekcja2 {{=}} Tutaj jest kod wartości '''sekcja2'''.
| sekcja3 {{=}} Tutaj jest kod wartości '''sekcja3'''.
| sekcja4 {{=}} Tutaj jest kod wartości '''sekcja4'''.
| sekcja5 {{=}} Tutaj jest kod wartości '''sekcja5'''.
| poprzedni {{=}} Tutaj jest kod wartości '''poprzedni'''.
| następny {{=}} Tutaj jest kod wartości '''następny'''.
| adnotacje {{=}} Tutaj jest kod wartości '''adnotacje'''.
| tłumacz {{=}} Tutaj jest kod wartości '''tłumacz'''.
| tłumacz_uwagi {{=}} Tutaj jest kod wartości '''tłumacz_uwagi'''.
| wikitłumacz {{=}} Tutaj jest kod wartości '''wikitłumacz'''.
| stopka {{=}} Tutaj jest kod wartości '''stopka'''.
| wyjście {{=}} Tu znajduje się wartość domyślna.
}}}}
| _2 = {{ConfDomyślna|tytuł nieznany
| poza_projektem = Tutaj jest kod wartości '''poza_projektem'''.
| tytuł = Tutaj jest kod wartości '''tytuł'''.
| autor = Tutaj jest kod wartości '''autor'''.
| autor1 = Tutaj jest kod wartości '''autor1'''.
| sekcja = Tutaj jest kod wartości '''sekcja'''.
| sekcja2 = Tutaj jest kod wartości '''sekcja2'''.
| sekcja3 = Tutaj jest kod wartości '''sekcja3'''.
| sekcja4 = Tutaj jest kod wartości '''sekcja4'''.
| sekcja5 = Tutaj jest kod wartości '''sekcja5'''.
| poprzedni = Tutaj jest kod wartości '''poprzedni'''.
| następny = Tutaj jest kod wartości '''następny'''.
| adnotacje = Tutaj jest kod wartości '''adnotacje'''.
| tłumacz = Tutaj jest kod wartości '''tłumacz'''.
| tłumacz_uwagi = Tutaj jest kod wartości '''tłumacz_uwagi'''.
| wikitłumacz = Tutaj jest kod wartości '''wikitłumacz'''.
| stopka = Tutaj jest kod wartości '''stopka'''.
| wyjście = Tu znajduje się wartość domyślna.
}}
}}
== Opakowania kategorii ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|OpakujKategorie|{{s|Integrowanie|Zapałka/jeden|nazwa przestrzeni nazw{{=}}(main)|nazwa jednostki{{=}}Strona/Podstrona}}}}}}
| _1 = {{OpakujKategorie|{{Integrowanie|Zapałka/jeden|nazwa przestrzeni nazw=(main)|nazwa jednostki=Strona/Podstrona}}}}
| 2 = {{Tt|{{s|OpakujKategorieZeSortowaniem|{{s|Integrowanie|Zapałka/jeden|nazwa przestrzeni nazw{{=}}(main)|nazwa jednostki{{=}}Strona/Podstrona}}}}}}
| _2 = {{OpakujKategorieZeSortowaniem|{{Integrowanie|Zapałka/jeden|nazwa przestrzeni nazw=(main)|nazwa jednostki=Strona/Podstrona}}}}
}}
== Szablony styli ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|
* ''' Wikikod: ''' {{s|Div|styl{{=}}{{s|Gradient|#e8f4ff|#FFFFFF|horizontal}}|{{s|Lorem ipsum|1}}}}
* ''' Kod HTML: ''' {{Nowiki|{{Div|styl={{Gradient|#e8f4ff|#FFFFFF|horizontal}}|{{Lorem ipsum|1}}}}}}
}}
| _1 = {{Div|styl={{Gradient|#e8f4ff|#FFFFFF|horizontal}}|{{Lorem ipsum|1}}}}
| bez-overflow-wiersz_2=tak
| 2 = {{Tt|
* ''' Wikikod: ''' {{s|Div|styl{{=}}background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{s|Cień ramki|4px|4px|8px|#fc0;}}|{{s|Lorem ipsum|1}}}}
* ''' Kod HTML: ''' {{Nowiki|{{Div|styl=background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{Cień ramki|4px|4px|8px|#fc0;}}|{{Lorem ipsum|1}}}}}}
}}
| _2 = {{Div|styl=background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{Cień ramki|4px|4px|8px|#fc0;}}|{{Lorem ipsum|1}}}}
| 3 = {{Tt|
* ''' Wikikod: ''' {{s|Div|styl{{=}}background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{s|Promień ramki|16px 8px 16px 8px}}|{{s|Lorem ipsum|1}}}}
* ''' Kod HTML: ''' {{Nowiki|{{Div|styl=background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{Promień ramki|16px 8px 16px 8px}}|{{Lorem ipsum|1}}}}}}
}}
| _3 = {{Div|styl=background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{Promień ramki|16px 8px 16px 8px}}|{{Lorem ipsum|1}}}}
}}
== Szablony widżetów (ogólnie) ==
Przedstawimy tutaj szablony, które można podreperować pod widżety różnego rodzaju.
=== Przyciski ===
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Przycisk do klikania|Wikibooks:Strona główna|Napis|class{{=}}czerwony}}}}
| _1 = {{Przycisk do klikania|Wikibooks:Strona główna|Napis|class=czerwony}}
| 2 = {{Tt|{{s|Przycisk do klikania 2|Strona główna|class{{=}}mw-ui-destructive}}}}
* Przekierowanie do niego jest: {{s|Guzik}}.
| _2 = {{Przycisk do klikania 2|Strona główna|class=mw-ui-destructive}}
| 3 = {{Tt|{{s|Przycisk archiwum|szablon{{=}}LinkProjekt|strona{{=}}Prośby do administratorów|archiwum{{=}}Archiwum|nazwa{{=}}Archiwum zgłoszeń}}}}
| _3 = {{Przycisk archiwum|szablon=LinkProjekt|strona=Prośby do administratorów|archiwum=Archiwum|nazwa=Archiwum zgłoszeń}}
}}
=== Szczególne szablony widżetów ===
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|WidżetGrupa|temat{{=}}To jest temat|tekst{{=}}{{s|Lorem ipsum}}}}}}
| _1 = {{WidżetGrupa|temat=To jest temat|tekst={{Lorem ipsum}}}}
}}
== Szablony nielinkowe do symbolizacji kodu ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Parametr|zmienna|tak}}}}
* szablon do symbolizacji fragmentu kodu wywołania szablonu
| _1 = {{Parametr|zmienna|tak}}
| 2 = {{Tt|{{s|Tag|div|zawartość{{=}}Oto jest zawartość|parametry{{=}}style{{=}}"border:10px solid black"}}}}
| _2 = {{Tag|div|zawartość=Oto jest zawartość|parametry=style="border:10px solid black"}}
}}
== Szablony do wstawiania kolorów ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Colorbox|darkkhaki|Kolor khaki|Khaki|kod projektu{{=}}w}}}}
| _1 = {{colorbox|darkkhaki|Kolor khaki|Khaki|kod projektu=w}}
| 2 = {{Tt|{{s|Colorbox2|green|zielony|czcionka{{=}}black|w{{=}}200|h{{=}}50}}}}
| _2 = {{Colorbox2|green|zielony|czcionka=black|w=200|h=50}}
| 3 = {{Tt|{{s|Kolor|#4169E1|To jest tekst w kolorze RoyalBlue (#4169E1)}}}}
| _3 = {{Kolor|#4169E1|To jest tekst w kolorze RoyalBlue (#4169E1)}}
| 4 = {{Tt|{{s|Legenda|white|Afryka|w linii{{=}}tak}} {{s|Legenda|green|Ameryki||w linii{{=}}tak}} {{s|Legenda|blue|Oceania||w linii{{=}}tak}} {{s|Legenda|#ff0|Europa||w linii{{=}}tak}} {{s|Legenda|#ff2800|Azja|none|w linii{{=}}tak}}}}
| _4 = {{Legenda|white|Afryka|w linii=tak}} {{Legenda|green|Ameryki||w linii=tak}} {{Legenda|blue|Oceania||w linii=tak}} {{Legenda|#ff0|Europa||w linii=tak}} {{Legenda|#ff2800|Azja|none|w linii=tak}}
| 5 = {{Tt|{{s|Tło|#FFEBCD|Tu jest tło tekstu w kolorze BlanchedAlmond (#FFEBCD)}}}}
| _5 = {{Tło|#FFEBCD|Tu jest tło tekstu w kolorze BlanchedAlmond (#FFEBCD)}}
| 6 = {{Tt|Wywołania szablonu: {{s|s|Ui-kolory}}: „pozytyw” jeśli ma być zielony {{s|Colorbox|{{s|Ui-kolory|pozytyw}}}}, „neutral” jeśli niebieski {{s|Colorbox|{{s|Ui-kolory|neutral}}}}, „negatyw” jeśli czerwony {{s|Colorbox|{{s|ui-kolory|negatyw}}}}, „ostrzeżenie” jeżeli pomarańczowy {{s|Colorbox|{{s|Ui-kolory|ostrzeżenie}}}}}}
| _6 = Wywołania szablonu: {{s|Ui-kolory}}: „pozytyw” jeśli ma być zielony {{colorbox|{{ui-kolory|pozytyw}}}}, „neutral” jeśli niebieski {{colorbox|{{ui-kolory|neutral}}}}, „negatyw” jeśli czerwony {{colorbox|{{ui-kolory|negatyw}}}}, „ostrzeżenie” jeżeli pomarańczowy {{colorbox|{{ui-kolory|ostrzeżenie}}}}
}}
== Szablony spisu tekstów danego autora ==
{{EfektKodów
| 1 = {{Tt|{{s|Spis|Użytkownik}}}} | _1 = {{Spis|Użytkownik}}
}}
== Szablony indeksowania i do wyszukiwania podanych słów kluczowych ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|Szablon {{s|s|Kotwica}} można umieszczać w nagłówkach rozdziałów:{{Br}}
<nowiki>===</nowiki> {{s|Kotwica|roz01|klucz1}} Oto jest nagłówek <nowiki>===</nowiki>{{Br}}
A do tego rozdziału można linkować za pomocą szablonu {{s|lu|#roz01|w{{=}}Inna nazwa ustępu}}.}}
| _1 = Szablon {{s|Kotwica}} można umieszczać w nagłówkach rozdziałów:
=== {{Kotwica|roz01|klucz1}} Oto jest nagłówek ===
A do tego rozdziału można linkować za pomocą szablonu {{lu|#roz01|w=Inna nazwa ustępu}}.
| 2 = {{Tt|Szablon {{s|s|Indeksuj}} można umieszczać w nagłówkach rozdziałów:{{Br}}
<nowiki>*</nowiki> Oto jest tekst, a w nim szablon, którego nie widać{{s|Indeksuj|słowa kluczowe|unikalny link}}, do którego możemy się odwołać.{{Br}}
<nowiki>*</nowiki> A oto jest link: {{s|lu|#unikalny link|w{{=}}link do id}}}}
| _2 = Szablon {{s|Indeksuj}} można umieszczać w nagłówkach rozdziałów:
* Oto jest tekst, a w nim szablon, którego nie widać{{Indeksuj|słowa kluczowe|unikalny link}}, do którego możemy się odwołać.
* A oto jest link: {{lu|#unikalny link|w=link do id}}.
}}
== Szablony list wykorzystujące moduł {{m|Lista}} ==
{{EfektKodów|kod-rozmiar=35%
| 1 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Niewypunktowana lista|jeden|dwa|trzy}}}}}}
| _1 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Niewypunktowana lista|jeden|dwa|trzy}}}}
| 2 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Pozioma lista|jeden|dwa|trzy}}}}}}
| _2 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Pozioma lista|jeden|dwa|trzy}}}}
| 3 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Poziomo uporządkowana lista|jeden|dwa|trzy}}}}}}
| _3 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Poziomo uporządkowana lista|jeden|dwa|trzy}}}}
| 4 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Uporządkowana lista|jeden|dwa|trzy}}}}}}
| _4 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Uporządkowana lista|jeden|dwa|trzy}}}}
| 5 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Wypunktowana lista|jeden|dwa|trzy}}}}}}
| _5 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Wypunktowana lista|jeden|dwa|trzy}}}}
}}
== Szablony rysunków ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|MapaObrazu|obraz{{=}}Wikipedia-logo.svg|rozmiar{{=}}x35px|link{{=}}{{s|LinkPediaGłówna|_|Wikipedia|bez znaczników{{=}}tak}}}}}}
| _1 = {{MapaObrazu|obraz=Wikipedia-logo.svg|rozmiar=x35px|link={{lpg|_|Wikipedia|bez znaczników=tak}}}}
| 2 = {{OverflowWiersz|styl=max-height:300px;|{{Pre|
{{s|MapaObrazu
| obraz {{=}} JoshuaReynoldsParty.jpg
| ramka {{=}} mały
| pozycja {{=}} centruj
| rozmiar {{=}} 400px
| alt {{=}} Dining room with nine men seated around a table. The dinner has been finished, and a large man at the head talks and gesticulates while the others eagerly listen. The men wear wigs and clothing of late 18th century Britain, and the furniture, hangings, and chandelier are of similar vintage. A liveried servant is entering with a tray bearing two high-shouldered decanters of wine.
| opis {{=}} Image map example. Clicking on a person in the picture causes the browser to load the appropriate article.
| wielokąt {{=}} 133 343 124 287 159 224 189 228 195 291 222 311 209 343 209 354 243 362 292 466 250 463
| wielokąt 2 {{=}} 76 224 84 255 43 302 62 400 123 423 121 361 137 344 122 290 111 234 96 225
| wielokąt 3 {{=}} 190 276 208 240 229 228 247 238 250 258 286 319 282 323 223 323 220 301 200 295
| wielokąt 4 {{=}} 308 317 311 270 328 261 316 246 320 228 343 227 357 240 377 274 366 284 352 311 319 324
| wielokąt 5 {{=}} 252 406 313 343 341 343 366 280 383 273 372 251 378 222 409 228 414 280 420 292 390 300 374 360 359 437 306 418 313 391 272 415
| wielokąt 6 {{=}} 455 238 484 253 505 303 495 363 501 377 491 443 429 439 423 375 466 352
| wielokąt 7 {{=}} 501 279 546 237 567 239 572 308 560 326 537 316 530 300 502 289
| wielokąt 8 {{=}} 572 453 591 446 572 373 603 351 562 325 592 288 573 260 573 248 591 243 615 254 637 280 655 334 705 396 656 419 625 382 609 391 613 453
| wielokąt 9 {{=}} 503 192 511 176 532 176 534 200 553 219 554 234 541 236 525 261 506 261 511 220 515 215
| link wielokąt {{=}} {{s|lhg|Samuel Johnson|Dr Johnson - Dictionary writer|bez znaczników{{=}}tak}}
| link wielokąt 2 {{=}} {{s|lhg|James Boswell|Boswell - Biographer|bez znaczników{{=}}tak}}
| link wielokąt 3 {{=}} {{s|lhg|Joshua Reynolds|Sir Joshua Reynolds - Host|bez znaczników{{=}}tak}}
| link wielokąt 4 {{=}} {{s|lhg|David Garrick|David Garrick - actor|bez znaczników{{=}}tak}}
| link wielokąt 5 {{=}} {{s|lhg|Edmund Burke|Edmund Burke - statesman|bez znaczników{{=}}tak}}
| link wielokąt 6 {{=}} {{s|lhg|Charles Burney|Charles Burney - music historian|bez znaczników{{=}}tak}}
| link wielokąt 7 {{=}} {{s|lhg|Thomas Warton|Thomas Warton - poet laureate|bez znaczników{{=}}tak}}
| link wielokąt 8 {{=}} {{s|lhg|Oliver Goldsmith|Oliver Goldsmith - writer|bez znaczników{{=}}tak}}
| link wielokąt 9 {{=}} {{s|lhg|Francis Barber|servant - poss. Francis Barber|bez znaczników{{=}}tak}}
| prostokąt {{=}} 418 220 452 287
| prostokąt 2 {{=}} 450 86 584 188
| prostokąt 3 {{=}} 286 87 376 191
| prostokąt 4 {{=}} 12 10 702 500
| link prostokąt {{=}} {{s|lhg|Pasquale Paoli|Pasqual Paoli - Corsican patriot|bez znaczników{{=}}tak}}
| link prostokąt 2 {{=}} {{s|lhg|Joshua Reynolds|prob.The Infant Academy 1782|bez znaczników{{=}}tak}}
| link prostokąt 3 {{=}} {{s|lhg|Joshua Reynolds|An unknown painting|bez znaczników{{=}}tak}}
| link prostokąt 4 {{=}} {{s|lhg|The Club (Literary Club)|Use button to enlarge or use hyperlinks|bez znaczników{{=}}tak}}
| koło {{=}} 100 141 20
| link koło {{=}} {{s|lhg|Joshua Reynolds|An unknown portrait|bez znaczników{{=}}tak}}
}}}}
}}
| _2 = {{MapaObrazu
| obraz = JoshuaReynoldsParty.jpg
| ramka = mały
| pozycja = centruj
| rozmiar = 400px
| alt = Dining room with nine men seated around a table. The dinner has been finished, and a large man at the head talks and gesticulates while the others eagerly listen. The men wear wigs and clothing of late 18th century Britain, and the furniture, hangings, and chandelier are of similar vintage. A liveried servant is entering with a tray bearing two high-shouldered decanters of wine.
| opis = Image map example. Clicking on a person in the picture causes the browser to load the appropriate article.
| wielokąt = 133 343 124 287 159 224 189 228 195 291 222 311 209 343 209 354 243 362 292 466 250 463
| wielokąt 2 = 76 224 84 255 43 302 62 400 123 423 121 361 137 344 122 290 111 234 96 225
| wielokąt 3 = 190 276 208 240 229 228 247 238 250 258 286 319 282 323 223 323 220 301 200 295
| wielokąt 4 = 308 317 311 270 328 261 316 246 320 228 343 227 357 240 377 274 366 284 352 311 319 324
| wielokąt 5 = 252 406 313 343 341 343 366 280 383 273 372 251 378 222 409 228 414 280 420 292 390 300 374 360 359 437 306 418 313 391 272 415
| wielokąt 6 = 455 238 484 253 505 303 495 363 501 377 491 443 429 439 423 375 466 352
| wielokąt 7 = 501 279 546 237 567 239 572 308 560 326 537 316 530 300 502 289
| wielokąt 8 = 572 453 591 446 572 373 603 351 562 325 592 288 573 260 573 248 591 243 615 254 637 280 655 334 705 396 656 419 625 382 609 391 613 453
| wielokąt 9 = 503 192 511 176 532 176 534 200 553 219 554 234 541 236 525 261 506 261 511 220 515 215
| link wielokąt = {{lhg|Samuel Johnson|Dr Johnson - Dictionary writer|bez znaczników=tak}}
| link wielokąt 2 = {{lhg|James Boswell|Boswell - Biographer|bez znaczników=tak}}
| link wielokąt 3 = {{lhg|Joshua Reynolds|Sir Joshua Reynolds - Host|bez znaczników=tak}}
| link wielokąt 4 = {{lhg|David Garrick|David Garrick - actor|bez znaczników=tak}}
| link wielokąt 5 = {{lhg|Edmund Burke|Edmund Burke - statesman|bez znaczników=tak}}
| link wielokąt 6 = {{lhg|Charles Burney|Charles Burney - music historian|bez znaczników=tak}}
| link wielokąt 7 = {{lhg|Thomas Warton|Thomas Warton - poet laureate|bez znaczników=tak}}
| link wielokąt 8 = {{lhg|Oliver Goldsmith|Oliver Goldsmith - writer|bez znaczników=tak}}
| link wielokąt 9 = {{lhg|Francis Barber|servant - poss. Francis Barber|bez znaczników=tak}}
| prostokąt = 418 220 452 287
| prostokąt 2 = 450 86 584 188
| prostokąt 3 = 286 87 376 191
| prostokąt 4 = 12 10 702 500
| link prostokąt = {{lhg|Pasquale Paoli|Pasqual Paoli - Corsican patriot|bez znaczników=tak}}
| link prostokąt 2 = {{lhg|Joshua Reynolds|prob.The Infant Academy 1782|bez znaczników=tak}}
| link prostokąt 3 = {{lhg|Joshua Reynolds|An unknown painting|bez znaczników=tak}}
| link prostokąt 4 = {{lhg|The Club (Literary Club)|Use button to enlarge or use hyperlinks|bez znaczników=tak}}
| koło = 100 141 20
| link koło = {{lhg|Joshua Reynolds|An unknown portrait|bez znaczników=tak}}
}}
| 3 = {{Tt|{{s|Plik|plik{{=}}Cyanocitta-cristata-004.jpg|ramka{{=}}mały|pozycja{{=}}prawo|opis{{=}}Modrosójka błękitna|alt{{=}}Roślina|link{{=}}w:Rośliny}}}}
| _3 = {{Plik|plik=Cyanocitta-cristata-004.jpg|ramka=mały|pozycja=prawo|opis=Modrosójka błękitna|alt=Roślina|link=w:Rośliny}}
| 4 = {{Tt|{{s|Rysunek|plik{{=}}Coord_planes_color_point_pl.svg|uchwyt{{=}}A|opis{{=}}To jest opis rysunku|pozycja{{=}}prawo|rozmiar{{=}}200px}}
{{DivClear|left}}}}
| _4 = {{Rysunek|plik=Coord_planes_color_point_pl.svg|uchwyt=A|opis=To jest opis rysunku|pozycja=prawo|rozmiar=200px}}
{{DivClear|left}}
| 5 = {{Pre|{{s|Galeria
| 1 {{=}} Diphasiastrum alpinum distribution in Poland.svg
| _1 {{=}} Występowanie widlicza alpejskiego w Polsce.
| 2 {{=}} DIphasiastrum alpinum Diphasiastrum oellgaardii 01092013.JPG
| _2 {{=}} Widlicz alpejski na alpejskiej murawie.
| 3 {{=}} Diphasiastrum alpinum.jpg
| _3 {{=}} Widlicz alpejski przed rozwinięciem kłosów zarodnionośnych.
| 4 {{=}} Diphasiastrum alpinum 100911.JPG
| _4 {{=}} Widlicz alpejski z kłosami zarodnionośnymi.
| 5 {{=}} Diphasiastrum alpinum, J. Garmendia 2409.JPG
| _5 {{=}} Widlicz alpejski z kłosami zarodnionośnymi.
| 6 {{=}} Diphasiastrum alpinum 100911c.JPG
| _6 {{=}} Widlicz alpejski z dojrzałymi kłosami zarodnionośnymi.
}}}}
| _5 = {{Galeria
| 1 = Diphasiastrum alpinum distribution in Poland.svg
| _1 = Występowanie widlicza alpejskiego w Polsce.
| 2 = DIphasiastrum alpinum Diphasiastrum oellgaardii 01092013.JPG
| _2 = Widlicz alpejski na alpejskiej murawie.
| 3 = Diphasiastrum alpinum.jpg
| _3 = Widlicz alpejski przed rozwinięciem kłosów zarodnionośnych.
| 4 = Diphasiastrum alpinum 100911.JPG
| _4 = Widlicz alpejski z kłosami zarodnionośnymi.
| 5 = Diphasiastrum alpinum, J. Garmendia 2409.JPG
| _5 = Widlicz alpejski z kłosami zarodnionośnymi.
| 6 = Diphasiastrum alpinum 100911c.JPG
| _6 = Widlicz alpejski z dojrzałymi kłosami zarodnionośnymi.
}}
}}
== Rozmieszczenie tekstu na stronie ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|Kolumny|2|
Zdobycze niemieckie na zachodzie słowiańskim 61
Pojezierze Pruskie i Pomorskie 68 - 69
Dolina Warty i Noteci 92.
Wyżyna i zatoka śląska 108—9.
}}}}
| _1 = {{Kolumny|2|
Zdobycze niemieckie na zachodzie słowiańskim 61
Pojezierze Pruskie i Pomorskie 68 - 69
Dolina Warty i Noteci 92.
Wyżyna i zatoka śląska 108—9.
}}
| h_2 = 450px
| 2 = {{Pre|{{s|Układ wielokolumnowy|szerokość {{=}} 200px|
* Agami
* Aleksandria – Port Wschodni
* Aleksandria – Port Zachodni
* Amreya
* Anfoushi
* Assafra
* Attarine
* Azarita (''Mazarita'', oryginalnie ''Lazarette'')
* Bab Sidra
* Bahari
* Bachus
* Bulkeley (''Bokla'')
* Burg el-Arab
* Cleopatra
* Dekheila
* Śródmieście
* Fleming
* Gabbari (''Qabbari'')
* Gianaclis
* Glym (skrót od ''Glymenopoulos'')
* Gumrok
* Hadara
* Ibrahimeya
* Kabbary (''Qabbary'')
* King Mariout
* Kafr Abdu
* Karmous (''Karmouz'')
* Kom el-Dik (''Kom el-Dekka'')
* Labban
* Laurent
* Maamoura Beach
* Maamoura
* Mafrouza
* Mandara
* Manshiyya
* Mex
* Miami
* Montaza
* Muharram Bey
* Mustafa Kamel
* Ramleh (''el-Raml'')
* Ras el-Tin
* Rushdy
* Saba Pasha
* San Stefano
* Shatby
* Schutz
* Sidi Bishr
* Sidi Gaber
* Smouha
* Sporting
* Stanley
* Syouf
* Tharwat
* Victoria
* Wardeyan
* Zizinia
}}}}
| _2 = {{Układ wielokolumnowy|szerokość = 200px|
* Agami
* Aleksandria – Port Wschodni
* Aleksandria – Port Zachodni
* Amreya
* Anfoushi
* Assafra
* Attarine
* Azarita (''Mazarita'', oryginalnie ''Lazarette'')
* Bab Sidra
* Bahari
* Bachus
* Bulkeley (''Bokla'')
* Burg el-Arab
* Cleopatra
* Dekheila
* Śródmieście
* Fleming
* Gabbari (''Qabbari'')
* Gianaclis
* Glym (skrót od ''Glymenopoulos'')
* Gumrok
* Hadara
* Ibrahimeya
* Kabbary (''Qabbary'')
* King Mariout
* Kafr Abdu
* Karmous (''Karmouz'')
* Kom el-Dik (''Kom el-Dekka'')
* Labban
* Laurent
* Maamoura Beach
* Maamoura
* Mafrouza
* Mandara
* Manshiyya
* Mex
* Miami
* Montaza
* Muharram Bey
* Mustafa Kamel
* Ramleh (''el-Raml'')
* Ras el-Tin
* Rushdy
* Saba Pasha
* San Stefano
* Shatby
* Schutz
* Sidi Bishr
* Sidi Gaber
* Smouha
* Sporting
* Stanley
* Syouf
* Tharwat
* Victoria
* Wardeyan
* Zizinia
}}
}}
== Szablony wykorzystywane do budowy innych szablonów ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}|2{{=}}Tak tutaj|test3{{=}}tak|3{{=}}Tak, ale tutaj}}}}
| _1 = {{Pierwszy niepusty|1=|test2=|2=Tak tutaj|test3=tak|3=Tak, ale tutaj}}
| 2 = {{Tt|{{s|Policz linki|[<nowiki>[Ala]], [[Ola]], [[Ela]], [[Ula]]</nowiki>}}}}
| _2 = {{Policz linki|[[Ala]], [[Ola]], [[Ela]], [[Ula]]}}
}}
== Szablony przedstawiające informacje techniczne opisu ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Pre|{{s|Szablonowy opis pudełka
| opis parametrów szablonu {{=}} tak
| nazwa szablonu {{=}} Lua
}}
{{Hr}}
{{s|Szablonowy opis pudełka
| nazwa szablonu {{=}} Lua
}}
}}
| _1 = {{Szablonowy opis pudełka
| opis parametrów szablonu = tak
| nazwa szablonu = Lua
}}
{{Hr}}
{{Szablonowy opis pudełka
| nazwa szablonu = Lua
}}
}}
== Ściąganie elementów z {{NS|k=d|pk=d|l=tak}} ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Wersja oprogramowania|id{{=}}Q11248}}}}
* Pobieranie danych, z Wikidanych, o {{Parametr|id|Q11248}} dla systemu Windows XP.
| _1 = {{Wersja oprogramowania|id=Q11248}}
}}
== Szablony techniczne do wstawienia do tekstu ==
{{EfektKodów
| 1 = {{Tt|{{s|Akord|c2{{=}}|e2{{=}}|g2{{=}}}}}}
| _1 = {{Akord|c2=|e2=|g2=}}
| 2 = {{Tt|{{s|Klawisz|Enter}}}}
| _2 = {{Klawisz|Enter}}
| 3 = {{Tt|{{s|Rummikub|czerni|black}}}}
| _3 = {{Rummikub|czerni|black}}
}}
== Szablony map lokalizacyjnych ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Mapa lokalizacyjna/punkt|49°39′00″N 21°10′00″E|opis{{=}}Gorlice}}}}
| _1 = {{Nowiki|{{Mapa lokalizacyjna/punkt|49°39′00″N 21°10′00″E|opis=Gorlice}}}}
| 2 = {{Pre|{{s|Mapa lokalizacyjna
| mapa {{=}} Polska
| wariant {{=}} 1945
| punkty mapy {{=}}
{{s|Mapa lokalizacyjna/punkt|49°39′00″N 21°10′00″E|opis{{=}}Gorlice}}
}}}}
| _2 = {{Mapa lokalizacyjna
| mapa = Polska
| wariant = 1945
| punkty mapy =
{{Mapa lokalizacyjna/punkt|49°39′00″N 21°10′00″E|opis=Gorlice}}
}}
| 3 = {{Pre|{{s|Tabelka|klasa{{=}}infobox|{{s|Infobox mapa lokalizacyjna
| mapa {{=}} Warszawa
| wariant {{=}} 1997
| współrzędne {{=}} 52°17'04.4"N 20°56'31.7"E
| opis {{=}} Harcerski Klub Łączności SP5ZIP{{s|Br}}im. hm. Wacława Łukaszewicza
| kategoria {{=}} Jednostka harcerska infobox
}}}}
}}
| _3 = {{Tabelka|klasa=infobox|{{Infobox mapa lokalizacyjna
| mapa = Warszawa
| wariant = 1997
| współrzędne = 52°17'04.4"N 20°56'31.7"E
| opis = Harcerski Klub Łączności SP5ZIP{{Br}}im. hm. Wacława Łukaszewicza
| kategoria = Jednostka harcerska infobox
}}}}
| 4 = {{Tt|{{s|Współrzędne|57°18′22″N 4°27′32″W|umieść{{=}}w tekście}}}} i jego przekierowanie {{Tt|{{s|Koordynaty|57°18′22″N 4°27′32″W|umieść{{=}}w tekście}}}}
| _4 = {{Współrzędne|57°18′22″N 4°27′32″W|umieść=w tekście}}
}}
== Szablony flag ==
=== Szablon bander {{s|Bandera}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Bandera|POL}}}} | _1 = {{Bandera|POL}}
| 2 = {{Tt|{{s|Bandera|POL|PRL}}}} | _2 = {{Bandera|POL|PRL}}
| 3 = {{Tt|{{s|Bandera|POL|wariant{{=}}PRL}}}} | _3 = {{Bandera|POL|wariant=PRL}}
| 4 = {{Tt|{{s|Bandera|POL|nazwa{{=}}Kraków}}}} | _4 = {{Bandera|POL|nazwa=Kraków}}
| 5 = {{Tt|{{s|Bandera|POL|rozmiar{{=}}40px}}}} | _5 = {{Bandera|POL|rozmiar=40px}}
| 6 = {{Tt|{{s|Bandera|POL|altlink{{=}}Kraków}}}} | _6 = {{Bandera|POL|altlink=Kraków}}
}}
=== Szablon bander {{s|BanderaD}} ===
{{EfektKodów
| 1 = {{Tt|{{s|BanderaD|POL}}}} | _1 = {{BanderaD|POL}}
}}
=== Szablon flaga {{s|Flaga}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Flaga|POL}}}} | _1 = {{Flaga|POL}}
| 2 = {{Tt|{{s|Flaga|POL|RON}}}} | _2 = {{Flaga|POL|RON}}
| 3 = {{Tt|{{s|Flaga|POL|wariant{{=}}RON}}}} | _3 = {{Flaga|POL|wariant=RON}}
| 4 = {{Tt|{{s|Flaga|POL|rozmiar{{=}}40px}}}} | _4 = {{Flaga|POL|rozmiar=40px}}
| 5 = {{Tt|{{s|Flaga|POL|altlink{{=}}Kraków}}}} | _5 = {{Flaga|POL|altlink=Kraków}}
}}
==== Szablony flag podręczników ====
{{EfektKodów
| 1 = {{Tt|{{s|En}}}} | _1 = {{En}}
| 2 = {{Tt|{{s|Esp}}}} | _2 = {{Esp}}
| 3 = {{Tt|{{s|Gre}}}} | _3 = {{Gre}}
| 4 = {{Tt|{{s|Pl}}}} | _4 = {{Pl}}
| 5 = {{Tt|{{s|Slv}}}} | _5 = {{Slv}}
| 6 = {{Tt|{{s|Svk}}}} | _6 = {{Svk}}
}}
==== Brak flagi {{s|Brak flagi}} ====
{{EfektKodów
| 1 = {{Tt|{{s|Brak flagi|{{s|lpg|Polska}}}}}} | _1 = {{Brak flagi|{{lpg|Polska}}}}
}}
=== Szablon {{s|Flaga grafika}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Flaga grafika|Flag of None.svg}}}} | _1 = {{Flaga grafika|Flag of None.svg}}
| 2 = {{Tt|{{s|Flaga grafika|Flag of None.svg|Lorem ipsum}}}} | _2 = {{Flaga grafika|Flag of None.svg|Lorem ipsum}}
}}
=== Szablon {{s|Ilustracja flagi}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Ilustracja flagi|POL}}}} | _1 = {{Ilustracja flagi|POL}}
| 2 = {{Tt|{{s|Ilustracja flagi|POL|RON}}}} | _2 = {{Ilustracja flagi|POL|RON}}
| 3 = {{Tt|{{s|Ilustracja flagi|POL|wariant{{=}}RON}}}} | _3 = {{Ilustracja flagi|POL|wariant=RON}}
}}
=== Szablon {{s|Państwo}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Państwo|Polska}}}} | _1 = {{Państwo|Polska}}
| 2 = {{Tt|{{s|Państwo|Polska|PRL}}}} | _2 = {{Państwo|Polska|PRL}}
| 3 = {{Tt|{{s|Państwo|Polska|nazwa{{=}}Kraków}}}} | _3 = {{Państwo|Polska|nazwa=Kraków}}
| 4 = {{Tt|{{s|Państwo|Polska|rozmiar{{=}}40px}}}} | _4 = {{Państwo|Polska|rozmiar=40px}}
| 5 = {{Tt|{{s|Państwo|Polska|altlink{{=}}Kraków}}}} | _5 = {{Państwo|Polska|altlink=Kraków}}
}}
=== Szablony państw inne niż {{s|Państwo}} ===
{{EfektKodów
| 1 = {{Tt|{{s|PaństwoD|Polska}}}} | _1 = {{PaństwoD|Polska}}
| 2 = {{Tt|{{s|PaństwoL|Polska}}}} | _2 = {{PaństwoL|Polska}}
| 3 = {{Tt|{{s|PaństwoR|Polska|LIO}}}} | _3 = {{PaństwoR|Polska|LIO}}
| 4 = {{Tt|{{s|Państwolink|Polska|Kraków|wariant{{=}}PRL}}}} | _4 = {{Państwolink|Polska|Kraków|wariant=PRL}}
| 5 = {{Tt|{{s|Państwoskrót|Polska}}}} | _5 = {{Państwoskrót|Polska}}
}}
=== Szablony państw grafik - {{s|Państwo grafika}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Państwo grafika|Flag of None.svg|Lorem ipsum}}}} | _1 = {{Państwo grafika|Flag of None.svg|Lorem ipsum}}
| 2 = {{Tt|{{s|Państwo grafika|Flag of None.svg|Lorem ipsum|link}}}} | _2 = {{Państwo grafika|Flag of None.svg|Lorem ipsum|link}}
| 3 = {{Tt|{{s|Państwo grafika|Red flag.svg|Lorem ipsum|rozmiar{{=}}40x40px}}}} | _3 = {{Państwo grafika|Red flag.svg|Lorem ipsum|rozmiar=40x40px}}
| 4 = {{Tt|{{s|Państwo grafika|Ethiopian Pennants.svg|rozmiar{{=}}40x40px|Lorem ipsum}}}} | _4 = {{Państwo grafika|Ethiopian Pennants.svg|rozmiar=40x40px|Lorem ipsum}}
| 5 = {{Tt|{{s|Państwo grafika|Ethiopian Pennants.svg|Lorem ipsum|rozmiar{{=}}40x40px|border{{=}}}}}} | _5 = {{Państwo grafika|Ethiopian Pennants.svg|Lorem ipsum|rozmiar=40x40px|border=}}
}}
=== Szablony państw grafik - {{s|PaństwoL grafika}} ===
{{EfektKodów
| 1 = {{Tt|{{s|PaństwoL grafika|Flag of None.svg|Lorem ipsum}}}} | _1 = {{PaństwoL grafika|Flag of None.svg|Lorem ipsum}}
| 2 = {{Tt|{{s|PaństwoL grafika|Flag of None.svg|Lorem ipsum|link}}}} | _2 = {{PaństwoL grafika|Flag of None.svg|Lorem ipsum|link}}
| 3 = {{Tt|{{s|PaństwoL grafika|Red flag.svg|Lorem ipsum|rozmiar{{=}}40x40px}}}} | _3 = {{PaństwoL grafika|Red flag.svg|Lorem ipsum|rozmiar=40x40px}}
| 4 = {{Tt|{{s|PaństwoL grafika|Ethiopian Pennants.svg|rozmiar{{=}}40x40px|Lorem ipsum}}}} | _4 = {{PaństwoL grafika|Ethiopian Pennants.svg|rozmiar=40x40px|Lorem ipsum}}
| 5 = {{Tt|{{s|PaństwoL grafika|Ethiopian Pennants.svg|Lorem ipsum|rozmiar{{=}}40x40px|border{{=}}}}}} | _5 = {{PaństwoL grafika|Ethiopian Pennants.svg|Lorem ipsum|rozmiar=40x40px|border=}}
}}
=== Szablony mistrzostw - {{s|Państwo mistrzostwa}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Państwo mistrzostwa|Polska|LMŚ 2013}}}} | _1 = {{Państwo mistrzostwa|Polska|LMŚ 2013}}
| 2 = {{Tt|{{s|Państwo mistrzostwa|POL|LMŚ 2013}}}} | _2 = {{Państwo mistrzostwa|POL|LMŚ 2013}}
| 3 = {{Tt|{{s|Państwo mistrzostwa|Stany Zjednoczone|LMŚ 2013}}}} | _3 = {{Państwo mistrzostwa|Stany Zjednoczone|LMŚ 2013}}
}}
=== Szablony skrótów map państw ===
{{EfektKodów
| 1 = {{Tt|{{s|Mapa|Polska}}}} | _1 = {{Mapa|Polska}}
| 2 = {{Tt|{{s|Mapa|Polska|PRL}}}} | _2 = {{Mapa|Polska|PRL}}
| 3 = {{Tt|{{s|Mapa|Polska|wariant{{=}}PRL}}}} | _3 = {{Mapa|Polska|wariant=PRL}}
}}
=== Szablony jednostek administracyjnych ===
{{EfektKodów
| 1 = {{Tt|{{s|Jednostki administracyjne|Polska}}}} | _1 = {{Jednostki administracyjne|Polska}}
| 2 = {{Tt|{{s|Jednostki administracyjne|Polska|PRL}}}} | _2 = {{Jednostki administracyjne|Polska|PRL}}
| 3 = {{Tt|{{s|Jednostki administracyjne|Polska|wariant{{=}}PRL}}}} | _3 = {{Jednostki administracyjne|Polska|wariant=PRL}}
}}
=== Reprezentacja ===
{{EfektKodów
| 1 = {{Tt|{{s|Reprezentacja|POL|pn}}}} | _1 = {{Reprezentacja|POL|pn}}
| 2 = {{Tt|{{s|ReprezentacjaL|POL|pn}}}} | _2 = {{ReprezentacjaL|POL|pn}}
| 3 = {{Tt|{{s|ReprezentacjaD|POL|pn}}}} | _3 = {{ReprezentacjaD|POL|pn}}
| 4 = {{Tt|{{s|Reprezentacja|DEU|wariant{{=}}DDR|pn}}}} | _4 = {{Reprezentacja|DEU|wariant=DDR|pn}}
| 5 = {{Tt|{{s|Reprezentacja|DEU|pn|rodzaj{{=}}U-21}}}} | _5 = {{Reprezentacja|DEU|pn|rodzaj=U-21}}
| 6 = {{Tt|{{s|ReprezentacjaL|DEU|wariant{{=}}DDR|pn}}}} | _6 = {{ReprezentacjaL|DEU|wariant=DDR|pn}}
| 7 = {{Tt|{{s|ReprezentacjaL|DEU|pn|rodzaj{{=}}U-21}}}} | _7 = {{ReprezentacjaL|DEU|pn|rodzaj=U-21}}
| 8 = {{Tt|{{s|ReprezentacjaD|DEU|wariant{{=}}DDR|pn}}}} | _8 = {{ReprezentacjaD|DEU|wariant=DDR|pn}}
| 9 = {{Tt|{{s|ReprezentacjaD|DEU|pn|rodzaj{{=}}U-21}}}} | _9 = {{ReprezentacjaD|DEU|pn|rodzaj=U-21}}
}}
=== Szablony związane z militariami ===
{{EfektKodów
| 1 = {{Tt|{{s|FIAV|100000}}}} | _1 = {{FIAV|100000}}
| 2 = {{Tt|{{s|FIAV|proposal}}}} | _2 = {{FIAV|proposal}}
}}
=== Szablony związane z rugby ===
{{EfektKodów
| 1 = {{Tt|{{s|Zespół ru|Blues|L}}}} | _1 = {{Zespół ru|Blues|L}}
| 2 = {{Tt|{{s|Zespół ru|Connacht|P}}}} | _2 = {{Zespół ru|Connacht|P}}
| 3 = {{Tt|{{s|Zespół ru|Quins}}}} | _3 = {{Zespół ru|Quins}}
| 4 = {{Tt|{{s|Zespół ru|Cats|L|1910}}}} | _4 = {{Zespół ru|Cats|L|1910}}
}}
=== Szablony terytorium ===
{{EfektKodów
| 1 = {{Tt|{{s|Terytorium zależne|MTQ}}}} | _1 = {{Terytorium zależne|MTQ}}
| 2 = {{Tt|{{s|Nazwa terytorium|MTQ}}}} | _2 = {{Nazwa terytorium|MTQ}}
}}
== Szablony do obliczeń matematycznych ==
=== Szablony warunkowe ===
==== Szablon {{s|Jeśli równe}} ====
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|Jeśli równe|1|2|wtedy{{=}}<nowiki><MATH>1 = 2</MATH></nowiki>|przeciwnie{{=}}<nowiki><math>1 \neq 2</math></nowiki>}}}}
| _1 = {{Jeśli równe|1|2|wtedy=<math>1 = 2</math>|przeciwnie=<math>1 \neq 2</math>}}
| 2 = {{Tt|{{s|Jeśli równe|1cm|10mm|wtedy{{=}}<nowiki><MATH>1cm = 10mm</MATH></nowiki>|przeciwnie{{=}}<nowiki><MATH>1cm \neq 10mm</MATH></nowiki>}}}}
| _2 = {{Jeśli równe|1cm|10mm|wtedy=<MATH>1cm = 10mm</MATH>|przeciwnie=<MATH>1cm \neq 10mm</MATH>}}
| 3 = {{Tt|{{s|Jeśli równe|15px|16Q|dokładność{{=}}0|wtedy{{=}}<nowiki><MATH>15px = 16Q</MATH></nowiki>|przeciwnie{{=}}<nowiki><MATH>15px \neq 16Q</MATH></nowiki>}}}}
| _3 = {{Jeśli równe|15px|16Q|dokładność=0|wtedy=<math>15px = 16Q</math>|przeciwnie=<math>15px \neq 16Q</math>}}
| 4 = {{Tt|{{s|Jeśli równe|Konik|Konik|wtedy{{=}}Konik to Konik|przeciwnie{{=}}co???}}}}
| _4 = {{Jeśli równe|Konik|Konik|wtedy=Konik to Konik|przeciwnie=co???}}
| 5 = {{Tt|{{s|Jeśli równe|Konik|Konik|inaczej{{=}}tak|łącznik{{=}}<nowiki><MATH>\neq</MATH></nowiki>}}}}
| _5 = {{Jeśli równe|Konik|Konik|inaczej=tak|łącznik=<MATH>\neq</MATH>}}
| 6 = {{Tt|{{s|Jeśli równe|Konik|Kucyk|inaczej{{=}}tak|łącznik{{=}}<nowiki><MATH>\neq</MATH></nowiki>}}}}
| _6 = {{Jeśli równe|Konik|Kucyk|inaczej=tak|łącznik=<MATH>\neq</MATH>}}
| 7 = {{Tt|{{s|Jeśli równe|Konik||inaczej{{=}}tak|łącznik{{=}}<nowiki><MATH>\neq</MATH></nowiki>}}}}
| _7 = {{Jeśli równe|Konik||inaczej=tak|łącznik=<MATH>\neq</MATH>}}
| 8 = {{Tt|{{s|Jeśli równe||Konik|inaczej{{=}}tak|łącznik{{=}}<nowiki><MATH>\neq</MATH></nowiki>}}}}
| _8 = {{Jeśli równe||Konik|inaczej=tak|łącznik=<MATH>\neq</MATH>}}
}}
==== Jeśli większe ====
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|#if:{{s|Jeśli większe|1cm|20px}}|Tak|Nie}}}}
| _1 = {{#if:{{Jeśli większe|1cm|20px}}|Tak|Nie}}
| 2 = {{Tt|{{s|#if:{{s|Jeśli większe|20px|1cm}}|Tak|Nie}}}}
| _2 = {{#if:{{Jeśli większe|20px|1cm}}|Tak|Nie}}
| 3 = {{Tt|{{s|#if:{{s|Jeśli większe|2|1}}|Tak|Nie}}}}
| _3 = {{#if:{{Jeśli większe|2|1}}|Tak|Nie}}
| 4 = {{Tt|{{s|#if:{{s|Jeśli większe|1|2}}|Tak|Nie}}}}
| _4 = {{#if:{{Jeśli większe|1|2}}|Tak|Nie}}
}}
==== Szablony typowo warunkowe ====
===== Szablony typu '''Jeśli''' =====
====== Szablon {{s|Jeśli niepuste}} ======
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|Jeśli niepuste|1|2}}}}
| _1 = {{Jeśli niepuste|1|2}}
| 2 = {{Tt|{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b}}}}
| _2 = {{Jeśli niepuste|1|2|przed=a|po=b}}
| 3 = {{Tt|{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d}}}}
| _3 = {{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d}}
| 4 = {{Tt|{{s|Jeśli niepuste||2}}}}
| _4 = {{Jeśli niepuste||2}}
| 5 = {{Tt|{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _5 = {{Jeśli niepuste|1|2|przed=a|po=b|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}
| 6 = {{Tt|{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _6 = {{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}
| 7 = {{Tt|{{s|Jeśli niepuste||2|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _7 = {{Jeśli niepuste||2|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}
| 8 = {{Tt|{{s|Jeśli niepuste||2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _8 = {{Jeśli niepuste||2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}
| 9 = {{Tt|{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _9 = {{Jeśli niepuste|1|2|przed=a|po=b|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}
| 10 = {{Tt|{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _10 = {{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}
| 11 = {{Tt|{{s|Jeśli niepuste||2|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _11 = {{Jeśli niepuste||2|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}
| 12 = {{Tt|{{s|Jeśli niepuste||2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _12 = {{Jeśli niepuste||2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}
| 13 = {{Tt|{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _13 = {{Jeśli niepuste|1|2|przed=a|po=b|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}
| 14 = {{Tt|{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _14 = {{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}
| 15 = {{Tt|{{s|Jeśli niepuste||2|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _15 = {{Jeśli niepuste||2|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}
| 16 = {{Tt|{{s|Jeśli niepuste||2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _16 = {{Jeśli niepuste||2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}
}}
====== Szablon {{s|Jeśli niepuste komunikat}} ======
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|Ambox|typ{{=}}poważny|tekst{{=}}{{s|Jeśli niepuste komunikat|<nowiki><ul><li>Oto jest błąd.</li></ul></nowiki>|NPA|Tekst szablonu.}}}}}}
| _1 = {{Ambox|typ=poważny|tekst={{Jeśli niepuste komunikat|<ul><li>Oto jest błąd.</li></ul>|NPA|Tekst szablonu.}}}}
| 2 = {{Pre|{{s|Ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat||NPA|Tekst szablonu.}}}}}}
| _2 = {{Ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat||NPA|Tekst szablonu.}}}}
| 3 = {{Pre|{{s|Ambox|typ{{=}}poważny|tekst{{=}}{{s|Jeśli niepuste komunikat|<nowiki><ul><li>Oto jest błąd.</li></ul></nowiki>|wtedy{{=}}<nowiki>'''</nowiki>Szablon zgłosił następujące błędy:<nowiki>'''</nowiki>|przeciwnie{{=}}Tekst szablonu.}}}}}}
| _3 = {{Ambox|typ=poważny|tekst={{Jeśli niepuste komunikat|<ul><li>Oto jest błąd.</li></ul>|wtedy='''Szablon zgłosił następujące błędy:'''|przeciwnie=Tekst szablonu.}}}}
| 4 = {{Pre|{{s|Ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat||wtedy{{=}}<nowiki>'''</nowiki>Szablon zgłosił następujące błędy:<nowiki>'''</nowiki>|przeciwnie{{=}}Tekst szablonu.}}}}}}
| _4 = {{Ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat||wtedy='''Szablon zgłośił następujące błędy:'''|przeciwnie=Tekst szablonu.}}}}
}}
====== Szablon {{s|Jeśli niepuste}} ======
{{EfektKodów
| 1 = {{Tt|{{s|Jeśli istnieje|Spis treści|Strona główna|przedrostek{{=}}Pomoc:}}}}
| _1 = {{Jeśli istnieje|Spis treści|Strona główna|przedrostek=Pomoc:}}
| 2 = {{Tt|{{s|Jeśli istnieje|Strona główna|Spis treści|przedrostek{{=}}Pomoc:}}}}
| _2 = {{Jeśli istnieje|Strona główna|Spis treści|przedrostek=Pomoc:}}
}}
===== Inne szablony =====
====== Szablon {{s|Pierwszy niepusty}} ======
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|2{{=}}Tak tutaj}}}}
| _1 = {{Pierwszy niepusty|1=|2=Tak tutaj}}
| 2 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}tak|2{{=}}Tak tutaj}}}}
| _2 = {{Pierwszy niepusty|1=|test2=tak|2=Tak tutaj}}
| 3 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}|2{{=}}Tak tutaj|test3{{=}}tak|3{{=}}Tak, ale tutaj}}}}
| _3 = {{Pierwszy niepusty|1=|test2=|2=Tak tutaj|test3=tak|3=Tak, ale tutaj}}
| 4 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}|2{{=}}Tak tutaj|3{{=}}Tak, ale tutaj}}}}
| _4 = {{Pierwszy niepusty|1=|test2=|2=Tak tutaj|3=Tak, ale tutaj}}
| 5 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}|2{{=}}Tak tutaj|test3{{=}}tak}}}}
| _5 = {{Pierwszy niepusty|1=|test2=|2=Tak tutaj|test3=tak}}
}}
=== Szablony jednostek ===
{{EfektKodów
| 1 = {{Tt|{{s|Liczba z absolutną jednostką długości|2}}}}
| _1 = {{Liczba z absolutną jednostką długości|2}}
| 2 = {{Tt|{{s|Liczba z absolutną jednostką długości|2px}}}}
| _2 = {{Liczba z absolutną jednostką długości|2px}}
| 3 = {{Tt|{{s|Maksimum|1|2}}}}
| _3 = {{Maksimum|1|2}}
| 4 = {{Tt|{{s|Maksimum|2|1}}}}
| _4 = {{Maksimum|2|1}}
| 5 = {{Tt|{{s|Maksimum|40px|1cm}}}}
| _5 = {{Maksimum|40px|1cm}}
| 6 = {{Tt|{{s|Minimum|1|2}}}}
| _6 = {{Minimum|1|2}}
| 7 = {{Tt|{{s|Minimum|2|1}}}}
| _7 = {{Minimum|2|1}}
| 8 = {{Tt|{{s|Minimum|40px|1cm}}}}
| _8 = {{Minimum|40px|1cm}}
| 9 = {{Tt|{{s|W pikselach|15px}}}}
| _9 = {{W pikselach|15px}}
| 10 = {{Tt|{{s|W pikselach|15pc}}}}
| _10 = {{W pikselach|15pc}}
| 11 = {{Tt|{{s|W pikselach|15pt}}}}
| _11 = {{W pikselach|15pt}}
| 12 = {{Tt|{{s|W pikselach|15in}}}}
| _12 = {{W pikselach|15in}}
| 13 = {{Tt|{{s|W pikselach|15Q}}}}
| _13 = {{W pikselach|15Q}}
| 14 = {{Tt|{{s|W pikselach|15mm}}}}
| _14 = {{W pikselach|15mm}}
| 15 = {{Tt|{{s|W pikselach|15cm}}}}
| _15 = {{W pikselach|15cm}}
| 16 = {{Tt|{{s|W pikselach|15cm|7}}}}
| _16 = {{W pikselach|15cm|7}}
| 17 = {{Tt|{{s|W pikselach|15cm|-2}}}}
| _17 = {{W pikselach|15cm|-2}}
}}
=== Szablony funkcji matematycznych ===
{{EfektKodów
| 1 = {{Tt|{{s|Ogranicz|100}}}}
| _1 = {{Ogranicz|100}}
| 2 = {{Tt|{{s|Ogranicz|300}}}}
| _2 = {{Ogranicz|300}}
| 3 = {{Tt|{{s|Ogranicz|30}}}}
| _3 = {{Ogranicz|30}}
}}
=== Szablony do rozwiązań technicznych ===
{{EfektKodów
| 1 = {{Tt|{{s|Jeśli niepuste|{{s|Void}}|-}}}}
| _1 = {{Jeśli niepuste|{{Void}}|-}}
}}
== Szablony ikon ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|Ikona|archiwum|50|dosuń{{=}}do prawej|alt{{=}}Wyświetlany zamiast rysunku.|opis{{=}}Oto jest archiwum.}}}}}
| _1 = {{Ikona|archiwum|50|dosuń=do prawej|alt=Wyświetlany zamiast rysunku.|opis=Oto jest archiwum.}}
| 2 = {{Tt|{{s|Ikona|meta|75|dosuń{{=}}do lewej|alt{{=}}Wyświetlany zamiast rysunku.|opis{{=}}Oto jest archiwum.}}}}}
| _2 = {{Ikona|meta|75|dosuń=do lewej|alt=Wyświetlany zamiast rysunku.|opis=Oto jest archiwum.}}
| 3 = {{Tt|{{s|Ikona|promocja|35|dosuń{{=}}do środka|alt{{=}}Wyświetlany zamiast rysunku.|opis{{=}}Oto jest archiwum.}}}}}
| _3 = {{Ikona|promocja|35|dosuń=do środka|alt=Wyświetlany zamiast rysunku.|opis=Oto jest archiwum.}}
}}
== Testowanie szablonu ==
{{EfektKodów
| 1 = {{Tt|{{s|Przypadek testowy|{{=}}Ambox{{s|!}}brudnopis{{s|{{=}}}}Ambox{{s|!}}pionowo|typ{{=}}poważny}}}}
| _1 = Ten szablon generuje tabelę stosowaną na {{lpr|Brudnopisy i strony testowe szablonów|stronach testowych szablonów}}, która zestawia obok siebie dwie wersje szablonów – szablon główny i jego wersję z brudnopisu. Oba przedstawiane szablony wykorzystują te same parametry.
{{Hr}}
{{Przypadek testowy|=Ambox{{!}}brudnopis{{=}}Ambox{{!}}pionowo|typ=poważny}}
}}
== Szablony ciągów i dopasowywanie do wzorca ==
{{EfektKodów|kod-rozmiar=35%
| 1 = {{Tt|{{s|Długość|ciąg{{=}}abc}}}}
| _1 = {{Długość|ciąg=abc}}
| 2 = {{Tt|{{s|Subciąg|ciąg{{=}}1234567|od{{=}}2|do{{=}}4}}}}
| _2 = {{Subciąg|ciąg=1234567|od=2|do=4}}
| 3 = {{Tt|{{s|Subciąg2|ciąg{{=}}1234567|od{{=}}2|długość{{=}}3}}}}
| _3 = {{Subciąg2|ciąg=1234567|od=2|długość=3}}
| 4 = {{Tt|{{s|Dopasuj|ciąg{{=}}123a45b67|wzór{{=}}%a+|które{{=}}2}}}}
| _4 = {{Dopasuj|ciąg=123a45b67|wzór=%a+|które=2}}
| 5 = {{Tt|{{s|Pobierz|ciąg{{=}}1234567|pozycja{{=}}5}}}}
| _5 = {{Pobierz|ciąg=1234567|pozycja=5}}
| 6 = {{Tt|{{s|Wyszukaj|ciąg{{=}}123s456|cel{{=}}s}}}}
| _6 = {{Wyszukaj|ciąg=123s456|cel=s}}
| 7 = {{Tt|{{s|Znajdź|ciąg{{=}}123%s456|cel{{=}}%a}}}}
| _7 = {{Znajdź|ciąg=123%s456|cel=%a}}
| 8 = {{Tt|{{s|Zastąp|ciąg{{=}}123s45s6|wzór{{=}}%a|zamień{{=}}q}}}}
| _8 = {{Zastąp|ciąg=123s45s6|wzór=%a|zamień=q}}
| 9 = {{Tt|{{s|Powtórz|ciąg{{=}}123s456|ile{{=}}2}}}}
| _9 = {{Powtórz|ciąg=123s456|ile=2}}
| 10 = {{Tt|{{s|Łącz|łącznik{{=}}.|parametr{{=}}1|parametr 2{{=}}2|4{{=}}3|parametr 4{{=}}4}}}}
| _10 = {{Łącz|łącznik=.|parametr=1|parametr 2=2|4=3|parametr 4=4}}
}}
== Szablony parsera tag ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|FormularzWejścia|typ{{=}}search|przestrzenie{{=}}Wikijunior|przerwa{{=}}no|szukaj{{=}}Szukaj!}}}}
| _1 = {{FormularzWejścia|typ=search|przestrzenie=Wikijunior|przerwa=no|szukaj=Szukaj!}}
| h_2 = 150px
| 2 = {{Tt|{{s|ListaKategorii|Astronomia i fizyka}}}}
| _2 = {{ListaKategorii|Astronomia i fizyka}}
}}
== Wyświetlane dymki po najechaniu myszką ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|W tym okresie ich genomy pozostają w zakażonych komórkach jako formy latentne. W stanie utajenia ekspresja informacji genetycznej faga jest ograniczona tylko do genów, których produkty są odpowiedzialne za utrzymanie tego stanu (lizogenii) {{s|Odnośnik|[Fortier & Sekulovic, 2013]|Fortier, L. C., & Sekulovic, O. (2013). Importance of prophages to evolution and virulence of bacterial pathogens. Virulence, 4(5), 354-365.}}.}}
| _1 = W tym okresie ich genomy pozostają w zakażonych komórkach jako formy latentne. W stanie utajenia ekspresja informacji genetycznej faga jest ograniczona tylko do genów, których produkty są odpowiedzialne za utrzymanie tego stanu (lizogenii) {{Odnośnik|[Fortier & Sekulovic, 2013]|Fortier, L. C., & Sekulovic, O. (2013). Importance of prophages to evolution and virulence of bacterial pathogens. Virulence, 4(5), 354-365.}}.
}}
{{BrClear}}
<noinclude>{{Kategoria|Wizualne opisy techniczne szablonów}}</noinclude>
2dqre2r6eji1exup9nx7mq4zamc68hu
557832
557826
2026-09-28T18:25:09Z
Persino
2851
/* Szablon {{s|Jeśli niepuste}} */
557832
wikitext
text/x-wiki
<noinclude>{{Autonawigacja|Pomoc:Spis treści}}</noinclude>
== Podświetlanie składni - szablony ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|ŹródłoKodu|język{{=}}xml|
{{s|Mniejszy}}ref name{{=}}"Nazwa przypisu"{{s|Większy}}W przypisie może być cokolwiek{{s|Mniejszy}}/ref{{s|Większy}}
{{s|Mniejszy}}ref name{{=}}"Wydawca: Jakiś tytuł"{{s|Większy}}Franciszka Tłumacząca, Przypisy często zawierają odniesienia do literatury lub źródeł internetowych{{s|Mniejszy}}/ref{{s|Większy}}
}}}}
| _1 = {{ŹródłoKodu|język=xml|
{{Mniejszy}}ref name{{=}}"Nazwa przypisu"{{Większy}}W przypisie może być cokolwiek{{Mniejszy}}/ref{{Większy}}
{{Mniejszy}}ref name{{=}}"Wydawca: Jakiś tytuł"{{Większy}}Franciszka Tłumacząca, Przypisy często zawierają odniesienia do literatury lub źródeł internetowych{{Mniejszy}}/ref{{Większy}}
}}
| 2 = {{Pre|{{s|ŹródłoHtml|{{s|Pełny rozdział|Zaczynamy|nazwa przestrzeni nazw{{=}}(main)|nazwa jednostki{{=}}Matematyka dla liceum}}}}}}
| _2 = {{ŹródłoHtml|{{Pełny rozdział|Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum}}}}
| 3 = {{Pre|{{s|ŹródłoCss|
.klasa_jeden{{s|(}}
width:100px;
height:150px;
font-fize:12px;
white-space:nowrap;
{{s|)}}}}}}
| _3 = {{ŹródłoCss|
.klasa_jeden{{(}}
width:100px;
height:150px;
font-size:12px;
white-space:nowrap;
{{)}}}}
| 4 = {{Pre|{{s|ŹródłoXml|
{{s|Mniejszy}}ref name{{s|{{=}}}}"Nazwa przypisu"{{s|Większy}}W przypisie może być cokolwiek{{s|Mniejszy}}/ref{{s|Większy}}
{{s|Mniejszy}}ref name{{s|{{=}}}}"Wydawca: Jakiś tytuł"{{s|Większy}}Franciszka Tłumacząca, ''Przypisy często zawierają odniesienia do literatury lub źródeł internetowych''{{s|Mniejszy}}/ref{{s|Większy}}
}}}}
| _4 = {{ŹródłoXml|
{{Mniejszy}}ref name{{=}}"Nazwa przypisu"{{Większy}}W przypisie może być cokolwiek{{Mniejszy}}/ref{{Większy}}
{{Mniejszy}}ref name{{=}}"Wydawca: Jakiś tytuł"{{Większy}}Franciszka Tłumacząca, Przypisy często zawierają odniesienia do literatury lub źródeł internetowych{{Mniejszy}}/ref{{Większy}}
}}
}}
== Pobieranie danych ze strony ==
{{EfektKodów|kod-rozmiar=35%
| 1 = {{Tt|{{s|ŹródłoCss|{{s|LuaSubst|{{Ns:Template}}:Nowraplinki/styles.css}}}}}}
| _1 = {{ŹródłoCss|{{LuaSubst|{{Ns:Template}}:Nowraplinki/styles.css}}}}
}}
== Pobieranie ustawień ze strony ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|PobierzUstawienia|Szablon:Podręcznik/Ustawienia/Szablon:Autonawigacja|artykuł|zmienna klucz}}}}
| _1 = {{PobierzUstawienia|Szablon:Podręcznik/Ustawienia/Szablon:Autonawigacja|artykuł|zmienna klucz}}
}}
== Szablony pobierania ustawień ze swojego wywołania ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|Conf|tytuł
| poza_projektem {{=}} Tutaj jest kod wartości '''poza_projektem'''.
| tytuł {{=}} Tutaj jest kod wartości '''tytuł'''.
| autor {{=}} Tutaj jest kod wartości '''autor'''.
| autor1 {{=}} Tutaj jest kod wartości '''autor1'''.
| sekcja {{=}} Tutaj jest kod wartości '''sekcja'''.
| sekcja2 {{=}} Tutaj jest kod wartości '''sekcja2'''.
| sekcja3 {{=}} Tutaj jest kod wartości '''sekcja3'''.
| sekcja4 {{=}} Tutaj jest kod wartości '''sekcja4'''.
| sekcja5 {{=}} Tutaj jest kod wartości '''sekcja5'''.
| poprzedni {{=}} Tutaj jest kod wartości '''poprzedni'''.
| następny {{=}} Tutaj jest kod wartości '''następny'''.
| adnotacje {{=}} Tutaj jest kod wartości '''adnotacje'''.
| tłumacz {{=}} Tutaj jest kod wartości '''tłumacz'''.
| tłumacz_uwagi {{=}} Tutaj jest kod wartości '''tłumacz_uwagi'''.
| wikitłumacz {{=}} Tutaj jest kod wartości '''wikitłumacz'''.
| stopka {{=}} Tutaj jest kod wartości '''stopka'''.
| wyjście {{=}} Tu znajduje się wartość domyślna.
}}}}
| _1 = {{Conf|tytuł
| poza_projektem = Tutaj jest kod wartości '''poza_projektem'''.
| tytuł = Tutaj jest kod wartości '''tytuł'''.
| autor = Tutaj jest kod wartości '''autor'''.
| autor1 = Tutaj jest kod wartości '''autor1'''.
| sekcja = Tutaj jest kod wartości '''sekcja'''.
| sekcja2 = Tutaj jest kod wartości '''sekcja2'''.
| sekcja3 = Tutaj jest kod wartości '''sekcja3'''.
| sekcja4 = Tutaj jest kod wartości '''sekcja4'''.
| sekcja5 = Tutaj jest kod wartości '''sekcja5'''.
| poprzedni = Tutaj jest kod wartości '''poprzedni'''.
| następny = Tutaj jest kod wartości '''następny'''.
| adnotacje = Tutaj jest kod wartości '''adnotacje'''.
| tłumacz = Tutaj jest kod wartości '''tłumacz'''.
| tłumacz_uwagi = Tutaj jest kod wartości '''tłumacz_uwagi'''.
| wikitłumacz = Tutaj jest kod wartości '''wikitłumacz'''.
| stopka = Tutaj jest kod wartości '''stopka'''.
| wyjście = Tu znajduje się wartość domyślna.
}}
| 2 = {{Pre|{{s|ConfDomyślna|tytuł nieznany
| poza_projektem {{=}} Tutaj jest kod wartości '''poza_projektem'''.
| tytuł {{=}} Tutaj jest kod wartości '''tytuł'''.
| autor {{=}} Tutaj jest kod wartości '''autor'''.
| autor1 {{=}} Tutaj jest kod wartości '''autor1'''.
| sekcja {{=}} Tutaj jest kod wartości '''sekcja'''.
| sekcja2 {{=}} Tutaj jest kod wartości '''sekcja2'''.
| sekcja3 {{=}} Tutaj jest kod wartości '''sekcja3'''.
| sekcja4 {{=}} Tutaj jest kod wartości '''sekcja4'''.
| sekcja5 {{=}} Tutaj jest kod wartości '''sekcja5'''.
| poprzedni {{=}} Tutaj jest kod wartości '''poprzedni'''.
| następny {{=}} Tutaj jest kod wartości '''następny'''.
| adnotacje {{=}} Tutaj jest kod wartości '''adnotacje'''.
| tłumacz {{=}} Tutaj jest kod wartości '''tłumacz'''.
| tłumacz_uwagi {{=}} Tutaj jest kod wartości '''tłumacz_uwagi'''.
| wikitłumacz {{=}} Tutaj jest kod wartości '''wikitłumacz'''.
| stopka {{=}} Tutaj jest kod wartości '''stopka'''.
| wyjście {{=}} Tu znajduje się wartość domyślna.
}}}}
| _2 = {{ConfDomyślna|tytuł nieznany
| poza_projektem = Tutaj jest kod wartości '''poza_projektem'''.
| tytuł = Tutaj jest kod wartości '''tytuł'''.
| autor = Tutaj jest kod wartości '''autor'''.
| autor1 = Tutaj jest kod wartości '''autor1'''.
| sekcja = Tutaj jest kod wartości '''sekcja'''.
| sekcja2 = Tutaj jest kod wartości '''sekcja2'''.
| sekcja3 = Tutaj jest kod wartości '''sekcja3'''.
| sekcja4 = Tutaj jest kod wartości '''sekcja4'''.
| sekcja5 = Tutaj jest kod wartości '''sekcja5'''.
| poprzedni = Tutaj jest kod wartości '''poprzedni'''.
| następny = Tutaj jest kod wartości '''następny'''.
| adnotacje = Tutaj jest kod wartości '''adnotacje'''.
| tłumacz = Tutaj jest kod wartości '''tłumacz'''.
| tłumacz_uwagi = Tutaj jest kod wartości '''tłumacz_uwagi'''.
| wikitłumacz = Tutaj jest kod wartości '''wikitłumacz'''.
| stopka = Tutaj jest kod wartości '''stopka'''.
| wyjście = Tu znajduje się wartość domyślna.
}}
}}
== Opakowania kategorii ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|OpakujKategorie|{{s|Integrowanie|Zapałka/jeden|nazwa przestrzeni nazw{{=}}(main)|nazwa jednostki{{=}}Strona/Podstrona}}}}}}
| _1 = {{OpakujKategorie|{{Integrowanie|Zapałka/jeden|nazwa przestrzeni nazw=(main)|nazwa jednostki=Strona/Podstrona}}}}
| 2 = {{Tt|{{s|OpakujKategorieZeSortowaniem|{{s|Integrowanie|Zapałka/jeden|nazwa przestrzeni nazw{{=}}(main)|nazwa jednostki{{=}}Strona/Podstrona}}}}}}
| _2 = {{OpakujKategorieZeSortowaniem|{{Integrowanie|Zapałka/jeden|nazwa przestrzeni nazw=(main)|nazwa jednostki=Strona/Podstrona}}}}
}}
== Szablony styli ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|
* ''' Wikikod: ''' {{s|Div|styl{{=}}{{s|Gradient|#e8f4ff|#FFFFFF|horizontal}}|{{s|Lorem ipsum|1}}}}
* ''' Kod HTML: ''' {{Nowiki|{{Div|styl={{Gradient|#e8f4ff|#FFFFFF|horizontal}}|{{Lorem ipsum|1}}}}}}
}}
| _1 = {{Div|styl={{Gradient|#e8f4ff|#FFFFFF|horizontal}}|{{Lorem ipsum|1}}}}
| bez-overflow-wiersz_2=tak
| 2 = {{Tt|
* ''' Wikikod: ''' {{s|Div|styl{{=}}background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{s|Cień ramki|4px|4px|8px|#fc0;}}|{{s|Lorem ipsum|1}}}}
* ''' Kod HTML: ''' {{Nowiki|{{Div|styl=background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{Cień ramki|4px|4px|8px|#fc0;}}|{{Lorem ipsum|1}}}}}}
}}
| _2 = {{Div|styl=background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{Cień ramki|4px|4px|8px|#fc0;}}|{{Lorem ipsum|1}}}}
| 3 = {{Tt|
* ''' Wikikod: ''' {{s|Div|styl{{=}}background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{s|Promień ramki|16px 8px 16px 8px}}|{{s|Lorem ipsum|1}}}}
* ''' Kod HTML: ''' {{Nowiki|{{Div|styl=background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{Promień ramki|16px 8px 16px 8px}}|{{Lorem ipsum|1}}}}}}
}}
| _3 = {{Div|styl=background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; {{Promień ramki|16px 8px 16px 8px}}|{{Lorem ipsum|1}}}}
}}
== Szablony widżetów (ogólnie) ==
Przedstawimy tutaj szablony, które można podreperować pod widżety różnego rodzaju.
=== Przyciski ===
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Przycisk do klikania|Wikibooks:Strona główna|Napis|class{{=}}czerwony}}}}
| _1 = {{Przycisk do klikania|Wikibooks:Strona główna|Napis|class=czerwony}}
| 2 = {{Tt|{{s|Przycisk do klikania 2|Strona główna|class{{=}}mw-ui-destructive}}}}
* Przekierowanie do niego jest: {{s|Guzik}}.
| _2 = {{Przycisk do klikania 2|Strona główna|class=mw-ui-destructive}}
| 3 = {{Tt|{{s|Przycisk archiwum|szablon{{=}}LinkProjekt|strona{{=}}Prośby do administratorów|archiwum{{=}}Archiwum|nazwa{{=}}Archiwum zgłoszeń}}}}
| _3 = {{Przycisk archiwum|szablon=LinkProjekt|strona=Prośby do administratorów|archiwum=Archiwum|nazwa=Archiwum zgłoszeń}}
}}
=== Szczególne szablony widżetów ===
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|WidżetGrupa|temat{{=}}To jest temat|tekst{{=}}{{s|Lorem ipsum}}}}}}
| _1 = {{WidżetGrupa|temat=To jest temat|tekst={{Lorem ipsum}}}}
}}
== Szablony nielinkowe do symbolizacji kodu ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Parametr|zmienna|tak}}}}
* szablon do symbolizacji fragmentu kodu wywołania szablonu
| _1 = {{Parametr|zmienna|tak}}
| 2 = {{Tt|{{s|Tag|div|zawartość{{=}}Oto jest zawartość|parametry{{=}}style{{=}}"border:10px solid black"}}}}
| _2 = {{Tag|div|zawartość=Oto jest zawartość|parametry=style="border:10px solid black"}}
}}
== Szablony do wstawiania kolorów ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Colorbox|darkkhaki|Kolor khaki|Khaki|kod projektu{{=}}w}}}}
| _1 = {{colorbox|darkkhaki|Kolor khaki|Khaki|kod projektu=w}}
| 2 = {{Tt|{{s|Colorbox2|green|zielony|czcionka{{=}}black|w{{=}}200|h{{=}}50}}}}
| _2 = {{Colorbox2|green|zielony|czcionka=black|w=200|h=50}}
| 3 = {{Tt|{{s|Kolor|#4169E1|To jest tekst w kolorze RoyalBlue (#4169E1)}}}}
| _3 = {{Kolor|#4169E1|To jest tekst w kolorze RoyalBlue (#4169E1)}}
| 4 = {{Tt|{{s|Legenda|white|Afryka|w linii{{=}}tak}} {{s|Legenda|green|Ameryki||w linii{{=}}tak}} {{s|Legenda|blue|Oceania||w linii{{=}}tak}} {{s|Legenda|#ff0|Europa||w linii{{=}}tak}} {{s|Legenda|#ff2800|Azja|none|w linii{{=}}tak}}}}
| _4 = {{Legenda|white|Afryka|w linii=tak}} {{Legenda|green|Ameryki||w linii=tak}} {{Legenda|blue|Oceania||w linii=tak}} {{Legenda|#ff0|Europa||w linii=tak}} {{Legenda|#ff2800|Azja|none|w linii=tak}}
| 5 = {{Tt|{{s|Tło|#FFEBCD|Tu jest tło tekstu w kolorze BlanchedAlmond (#FFEBCD)}}}}
| _5 = {{Tło|#FFEBCD|Tu jest tło tekstu w kolorze BlanchedAlmond (#FFEBCD)}}
| 6 = {{Tt|Wywołania szablonu: {{s|s|Ui-kolory}}: „pozytyw” jeśli ma być zielony {{s|Colorbox|{{s|Ui-kolory|pozytyw}}}}, „neutral” jeśli niebieski {{s|Colorbox|{{s|Ui-kolory|neutral}}}}, „negatyw” jeśli czerwony {{s|Colorbox|{{s|ui-kolory|negatyw}}}}, „ostrzeżenie” jeżeli pomarańczowy {{s|Colorbox|{{s|Ui-kolory|ostrzeżenie}}}}}}
| _6 = Wywołania szablonu: {{s|Ui-kolory}}: „pozytyw” jeśli ma być zielony {{colorbox|{{ui-kolory|pozytyw}}}}, „neutral” jeśli niebieski {{colorbox|{{ui-kolory|neutral}}}}, „negatyw” jeśli czerwony {{colorbox|{{ui-kolory|negatyw}}}}, „ostrzeżenie” jeżeli pomarańczowy {{colorbox|{{ui-kolory|ostrzeżenie}}}}
}}
== Szablony spisu tekstów danego autora ==
{{EfektKodów
| 1 = {{Tt|{{s|Spis|Użytkownik}}}} | _1 = {{Spis|Użytkownik}}
}}
== Szablony indeksowania i do wyszukiwania podanych słów kluczowych ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|Szablon {{s|s|Kotwica}} można umieszczać w nagłówkach rozdziałów:{{Br}}
<nowiki>===</nowiki> {{s|Kotwica|roz01|klucz1}} Oto jest nagłówek <nowiki>===</nowiki>{{Br}}
A do tego rozdziału można linkować za pomocą szablonu {{s|lu|#roz01|w{{=}}Inna nazwa ustępu}}.}}
| _1 = Szablon {{s|Kotwica}} można umieszczać w nagłówkach rozdziałów:
=== {{Kotwica|roz01|klucz1}} Oto jest nagłówek ===
A do tego rozdziału można linkować za pomocą szablonu {{lu|#roz01|w=Inna nazwa ustępu}}.
| 2 = {{Tt|Szablon {{s|s|Indeksuj}} można umieszczać w nagłówkach rozdziałów:{{Br}}
<nowiki>*</nowiki> Oto jest tekst, a w nim szablon, którego nie widać{{s|Indeksuj|słowa kluczowe|unikalny link}}, do którego możemy się odwołać.{{Br}}
<nowiki>*</nowiki> A oto jest link: {{s|lu|#unikalny link|w{{=}}link do id}}}}
| _2 = Szablon {{s|Indeksuj}} można umieszczać w nagłówkach rozdziałów:
* Oto jest tekst, a w nim szablon, którego nie widać{{Indeksuj|słowa kluczowe|unikalny link}}, do którego możemy się odwołać.
* A oto jest link: {{lu|#unikalny link|w=link do id}}.
}}
== Szablony list wykorzystujące moduł {{m|Lista}} ==
{{EfektKodów|kod-rozmiar=35%
| 1 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Niewypunktowana lista|jeden|dwa|trzy}}}}}}
| _1 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Niewypunktowana lista|jeden|dwa|trzy}}}}
| 2 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Pozioma lista|jeden|dwa|trzy}}}}}}
| _2 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Pozioma lista|jeden|dwa|trzy}}}}
| 3 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Poziomo uporządkowana lista|jeden|dwa|trzy}}}}}}
| _3 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Poziomo uporządkowana lista|jeden|dwa|trzy}}}}
| 4 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Uporządkowana lista|jeden|dwa|trzy}}}}}}
| _4 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Uporządkowana lista|jeden|dwa|trzy}}}}
| 5 = {{Tt|{{s|Plik|plik{{=}}Simple shapes example.png|ramka{{=}}mały|pozycja{{=}}prawo|rozmiar{{=}}100px|opis{{=}}{{s|Wypunktowana lista|jeden|dwa|trzy}}}}}}
| _5 = {{Plik|plik=Simple shapes example.png|ramka=mały|pozycja=prawo|rozmiar=100px|opis={{Wypunktowana lista|jeden|dwa|trzy}}}}
}}
== Szablony rysunków ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|MapaObrazu|obraz{{=}}Wikipedia-logo.svg|rozmiar{{=}}x35px|link{{=}}{{s|LinkPediaGłówna|_|Wikipedia|bez znaczników{{=}}tak}}}}}}
| _1 = {{MapaObrazu|obraz=Wikipedia-logo.svg|rozmiar=x35px|link={{lpg|_|Wikipedia|bez znaczników=tak}}}}
| 2 = {{OverflowWiersz|styl=max-height:300px;|{{Pre|
{{s|MapaObrazu
| obraz {{=}} JoshuaReynoldsParty.jpg
| ramka {{=}} mały
| pozycja {{=}} centruj
| rozmiar {{=}} 400px
| alt {{=}} Dining room with nine men seated around a table. The dinner has been finished, and a large man at the head talks and gesticulates while the others eagerly listen. The men wear wigs and clothing of late 18th century Britain, and the furniture, hangings, and chandelier are of similar vintage. A liveried servant is entering with a tray bearing two high-shouldered decanters of wine.
| opis {{=}} Image map example. Clicking on a person in the picture causes the browser to load the appropriate article.
| wielokąt {{=}} 133 343 124 287 159 224 189 228 195 291 222 311 209 343 209 354 243 362 292 466 250 463
| wielokąt 2 {{=}} 76 224 84 255 43 302 62 400 123 423 121 361 137 344 122 290 111 234 96 225
| wielokąt 3 {{=}} 190 276 208 240 229 228 247 238 250 258 286 319 282 323 223 323 220 301 200 295
| wielokąt 4 {{=}} 308 317 311 270 328 261 316 246 320 228 343 227 357 240 377 274 366 284 352 311 319 324
| wielokąt 5 {{=}} 252 406 313 343 341 343 366 280 383 273 372 251 378 222 409 228 414 280 420 292 390 300 374 360 359 437 306 418 313 391 272 415
| wielokąt 6 {{=}} 455 238 484 253 505 303 495 363 501 377 491 443 429 439 423 375 466 352
| wielokąt 7 {{=}} 501 279 546 237 567 239 572 308 560 326 537 316 530 300 502 289
| wielokąt 8 {{=}} 572 453 591 446 572 373 603 351 562 325 592 288 573 260 573 248 591 243 615 254 637 280 655 334 705 396 656 419 625 382 609 391 613 453
| wielokąt 9 {{=}} 503 192 511 176 532 176 534 200 553 219 554 234 541 236 525 261 506 261 511 220 515 215
| link wielokąt {{=}} {{s|lhg|Samuel Johnson|Dr Johnson - Dictionary writer|bez znaczników{{=}}tak}}
| link wielokąt 2 {{=}} {{s|lhg|James Boswell|Boswell - Biographer|bez znaczników{{=}}tak}}
| link wielokąt 3 {{=}} {{s|lhg|Joshua Reynolds|Sir Joshua Reynolds - Host|bez znaczników{{=}}tak}}
| link wielokąt 4 {{=}} {{s|lhg|David Garrick|David Garrick - actor|bez znaczników{{=}}tak}}
| link wielokąt 5 {{=}} {{s|lhg|Edmund Burke|Edmund Burke - statesman|bez znaczników{{=}}tak}}
| link wielokąt 6 {{=}} {{s|lhg|Charles Burney|Charles Burney - music historian|bez znaczników{{=}}tak}}
| link wielokąt 7 {{=}} {{s|lhg|Thomas Warton|Thomas Warton - poet laureate|bez znaczników{{=}}tak}}
| link wielokąt 8 {{=}} {{s|lhg|Oliver Goldsmith|Oliver Goldsmith - writer|bez znaczników{{=}}tak}}
| link wielokąt 9 {{=}} {{s|lhg|Francis Barber|servant - poss. Francis Barber|bez znaczników{{=}}tak}}
| prostokąt {{=}} 418 220 452 287
| prostokąt 2 {{=}} 450 86 584 188
| prostokąt 3 {{=}} 286 87 376 191
| prostokąt 4 {{=}} 12 10 702 500
| link prostokąt {{=}} {{s|lhg|Pasquale Paoli|Pasqual Paoli - Corsican patriot|bez znaczników{{=}}tak}}
| link prostokąt 2 {{=}} {{s|lhg|Joshua Reynolds|prob.The Infant Academy 1782|bez znaczników{{=}}tak}}
| link prostokąt 3 {{=}} {{s|lhg|Joshua Reynolds|An unknown painting|bez znaczników{{=}}tak}}
| link prostokąt 4 {{=}} {{s|lhg|The Club (Literary Club)|Use button to enlarge or use hyperlinks|bez znaczników{{=}}tak}}
| koło {{=}} 100 141 20
| link koło {{=}} {{s|lhg|Joshua Reynolds|An unknown portrait|bez znaczników{{=}}tak}}
}}}}
}}
| _2 = {{MapaObrazu
| obraz = JoshuaReynoldsParty.jpg
| ramka = mały
| pozycja = centruj
| rozmiar = 400px
| alt = Dining room with nine men seated around a table. The dinner has been finished, and a large man at the head talks and gesticulates while the others eagerly listen. The men wear wigs and clothing of late 18th century Britain, and the furniture, hangings, and chandelier are of similar vintage. A liveried servant is entering with a tray bearing two high-shouldered decanters of wine.
| opis = Image map example. Clicking on a person in the picture causes the browser to load the appropriate article.
| wielokąt = 133 343 124 287 159 224 189 228 195 291 222 311 209 343 209 354 243 362 292 466 250 463
| wielokąt 2 = 76 224 84 255 43 302 62 400 123 423 121 361 137 344 122 290 111 234 96 225
| wielokąt 3 = 190 276 208 240 229 228 247 238 250 258 286 319 282 323 223 323 220 301 200 295
| wielokąt 4 = 308 317 311 270 328 261 316 246 320 228 343 227 357 240 377 274 366 284 352 311 319 324
| wielokąt 5 = 252 406 313 343 341 343 366 280 383 273 372 251 378 222 409 228 414 280 420 292 390 300 374 360 359 437 306 418 313 391 272 415
| wielokąt 6 = 455 238 484 253 505 303 495 363 501 377 491 443 429 439 423 375 466 352
| wielokąt 7 = 501 279 546 237 567 239 572 308 560 326 537 316 530 300 502 289
| wielokąt 8 = 572 453 591 446 572 373 603 351 562 325 592 288 573 260 573 248 591 243 615 254 637 280 655 334 705 396 656 419 625 382 609 391 613 453
| wielokąt 9 = 503 192 511 176 532 176 534 200 553 219 554 234 541 236 525 261 506 261 511 220 515 215
| link wielokąt = {{lhg|Samuel Johnson|Dr Johnson - Dictionary writer|bez znaczników=tak}}
| link wielokąt 2 = {{lhg|James Boswell|Boswell - Biographer|bez znaczników=tak}}
| link wielokąt 3 = {{lhg|Joshua Reynolds|Sir Joshua Reynolds - Host|bez znaczników=tak}}
| link wielokąt 4 = {{lhg|David Garrick|David Garrick - actor|bez znaczników=tak}}
| link wielokąt 5 = {{lhg|Edmund Burke|Edmund Burke - statesman|bez znaczników=tak}}
| link wielokąt 6 = {{lhg|Charles Burney|Charles Burney - music historian|bez znaczników=tak}}
| link wielokąt 7 = {{lhg|Thomas Warton|Thomas Warton - poet laureate|bez znaczników=tak}}
| link wielokąt 8 = {{lhg|Oliver Goldsmith|Oliver Goldsmith - writer|bez znaczników=tak}}
| link wielokąt 9 = {{lhg|Francis Barber|servant - poss. Francis Barber|bez znaczników=tak}}
| prostokąt = 418 220 452 287
| prostokąt 2 = 450 86 584 188
| prostokąt 3 = 286 87 376 191
| prostokąt 4 = 12 10 702 500
| link prostokąt = {{lhg|Pasquale Paoli|Pasqual Paoli - Corsican patriot|bez znaczników=tak}}
| link prostokąt 2 = {{lhg|Joshua Reynolds|prob.The Infant Academy 1782|bez znaczników=tak}}
| link prostokąt 3 = {{lhg|Joshua Reynolds|An unknown painting|bez znaczników=tak}}
| link prostokąt 4 = {{lhg|The Club (Literary Club)|Use button to enlarge or use hyperlinks|bez znaczników=tak}}
| koło = 100 141 20
| link koło = {{lhg|Joshua Reynolds|An unknown portrait|bez znaczników=tak}}
}}
| 3 = {{Tt|{{s|Plik|plik{{=}}Cyanocitta-cristata-004.jpg|ramka{{=}}mały|pozycja{{=}}prawo|opis{{=}}Modrosójka błękitna|alt{{=}}Roślina|link{{=}}w:Rośliny}}}}
| _3 = {{Plik|plik=Cyanocitta-cristata-004.jpg|ramka=mały|pozycja=prawo|opis=Modrosójka błękitna|alt=Roślina|link=w:Rośliny}}
| 4 = {{Tt|{{s|Rysunek|plik{{=}}Coord_planes_color_point_pl.svg|uchwyt{{=}}A|opis{{=}}To jest opis rysunku|pozycja{{=}}prawo|rozmiar{{=}}200px}}
{{DivClear|left}}}}
| _4 = {{Rysunek|plik=Coord_planes_color_point_pl.svg|uchwyt=A|opis=To jest opis rysunku|pozycja=prawo|rozmiar=200px}}
{{DivClear|left}}
| 5 = {{Pre|{{s|Galeria
| 1 {{=}} Diphasiastrum alpinum distribution in Poland.svg
| _1 {{=}} Występowanie widlicza alpejskiego w Polsce.
| 2 {{=}} DIphasiastrum alpinum Diphasiastrum oellgaardii 01092013.JPG
| _2 {{=}} Widlicz alpejski na alpejskiej murawie.
| 3 {{=}} Diphasiastrum alpinum.jpg
| _3 {{=}} Widlicz alpejski przed rozwinięciem kłosów zarodnionośnych.
| 4 {{=}} Diphasiastrum alpinum 100911.JPG
| _4 {{=}} Widlicz alpejski z kłosami zarodnionośnymi.
| 5 {{=}} Diphasiastrum alpinum, J. Garmendia 2409.JPG
| _5 {{=}} Widlicz alpejski z kłosami zarodnionośnymi.
| 6 {{=}} Diphasiastrum alpinum 100911c.JPG
| _6 {{=}} Widlicz alpejski z dojrzałymi kłosami zarodnionośnymi.
}}}}
| _5 = {{Galeria
| 1 = Diphasiastrum alpinum distribution in Poland.svg
| _1 = Występowanie widlicza alpejskiego w Polsce.
| 2 = DIphasiastrum alpinum Diphasiastrum oellgaardii 01092013.JPG
| _2 = Widlicz alpejski na alpejskiej murawie.
| 3 = Diphasiastrum alpinum.jpg
| _3 = Widlicz alpejski przed rozwinięciem kłosów zarodnionośnych.
| 4 = Diphasiastrum alpinum 100911.JPG
| _4 = Widlicz alpejski z kłosami zarodnionośnymi.
| 5 = Diphasiastrum alpinum, J. Garmendia 2409.JPG
| _5 = Widlicz alpejski z kłosami zarodnionośnymi.
| 6 = Diphasiastrum alpinum 100911c.JPG
| _6 = Widlicz alpejski z dojrzałymi kłosami zarodnionośnymi.
}}
}}
== Rozmieszczenie tekstu na stronie ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|Kolumny|2|
Zdobycze niemieckie na zachodzie słowiańskim 61
Pojezierze Pruskie i Pomorskie 68 - 69
Dolina Warty i Noteci 92.
Wyżyna i zatoka śląska 108—9.
}}}}
| _1 = {{Kolumny|2|
Zdobycze niemieckie na zachodzie słowiańskim 61
Pojezierze Pruskie i Pomorskie 68 - 69
Dolina Warty i Noteci 92.
Wyżyna i zatoka śląska 108—9.
}}
| h_2 = 450px
| 2 = {{Pre|{{s|Układ wielokolumnowy|szerokość {{=}} 200px|
* Agami
* Aleksandria – Port Wschodni
* Aleksandria – Port Zachodni
* Amreya
* Anfoushi
* Assafra
* Attarine
* Azarita (''Mazarita'', oryginalnie ''Lazarette'')
* Bab Sidra
* Bahari
* Bachus
* Bulkeley (''Bokla'')
* Burg el-Arab
* Cleopatra
* Dekheila
* Śródmieście
* Fleming
* Gabbari (''Qabbari'')
* Gianaclis
* Glym (skrót od ''Glymenopoulos'')
* Gumrok
* Hadara
* Ibrahimeya
* Kabbary (''Qabbary'')
* King Mariout
* Kafr Abdu
* Karmous (''Karmouz'')
* Kom el-Dik (''Kom el-Dekka'')
* Labban
* Laurent
* Maamoura Beach
* Maamoura
* Mafrouza
* Mandara
* Manshiyya
* Mex
* Miami
* Montaza
* Muharram Bey
* Mustafa Kamel
* Ramleh (''el-Raml'')
* Ras el-Tin
* Rushdy
* Saba Pasha
* San Stefano
* Shatby
* Schutz
* Sidi Bishr
* Sidi Gaber
* Smouha
* Sporting
* Stanley
* Syouf
* Tharwat
* Victoria
* Wardeyan
* Zizinia
}}}}
| _2 = {{Układ wielokolumnowy|szerokość = 200px|
* Agami
* Aleksandria – Port Wschodni
* Aleksandria – Port Zachodni
* Amreya
* Anfoushi
* Assafra
* Attarine
* Azarita (''Mazarita'', oryginalnie ''Lazarette'')
* Bab Sidra
* Bahari
* Bachus
* Bulkeley (''Bokla'')
* Burg el-Arab
* Cleopatra
* Dekheila
* Śródmieście
* Fleming
* Gabbari (''Qabbari'')
* Gianaclis
* Glym (skrót od ''Glymenopoulos'')
* Gumrok
* Hadara
* Ibrahimeya
* Kabbary (''Qabbary'')
* King Mariout
* Kafr Abdu
* Karmous (''Karmouz'')
* Kom el-Dik (''Kom el-Dekka'')
* Labban
* Laurent
* Maamoura Beach
* Maamoura
* Mafrouza
* Mandara
* Manshiyya
* Mex
* Miami
* Montaza
* Muharram Bey
* Mustafa Kamel
* Ramleh (''el-Raml'')
* Ras el-Tin
* Rushdy
* Saba Pasha
* San Stefano
* Shatby
* Schutz
* Sidi Bishr
* Sidi Gaber
* Smouha
* Sporting
* Stanley
* Syouf
* Tharwat
* Victoria
* Wardeyan
* Zizinia
}}
}}
== Szablony wykorzystywane do budowy innych szablonów ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}|2{{=}}Tak tutaj|test3{{=}}tak|3{{=}}Tak, ale tutaj}}}}
| _1 = {{Pierwszy niepusty|1=|test2=|2=Tak tutaj|test3=tak|3=Tak, ale tutaj}}
| 2 = {{Tt|{{s|Policz linki|[<nowiki>[Ala]], [[Ola]], [[Ela]], [[Ula]]</nowiki>}}}}
| _2 = {{Policz linki|[[Ala]], [[Ola]], [[Ela]], [[Ula]]}}
}}
== Szablony przedstawiające informacje techniczne opisu ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Pre|{{s|Szablonowy opis pudełka
| opis parametrów szablonu {{=}} tak
| nazwa szablonu {{=}} Lua
}}
{{Hr}}
{{s|Szablonowy opis pudełka
| nazwa szablonu {{=}} Lua
}}
}}
| _1 = {{Szablonowy opis pudełka
| opis parametrów szablonu = tak
| nazwa szablonu = Lua
}}
{{Hr}}
{{Szablonowy opis pudełka
| nazwa szablonu = Lua
}}
}}
== Ściąganie elementów z {{NS|k=d|pk=d|l=tak}} ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Wersja oprogramowania|id{{=}}Q11248}}}}
* Pobieranie danych, z Wikidanych, o {{Parametr|id|Q11248}} dla systemu Windows XP.
| _1 = {{Wersja oprogramowania|id=Q11248}}
}}
== Szablony techniczne do wstawienia do tekstu ==
{{EfektKodów
| 1 = {{Tt|{{s|Akord|c2{{=}}|e2{{=}}|g2{{=}}}}}}
| _1 = {{Akord|c2=|e2=|g2=}}
| 2 = {{Tt|{{s|Klawisz|Enter}}}}
| _2 = {{Klawisz|Enter}}
| 3 = {{Tt|{{s|Rummikub|czerni|black}}}}
| _3 = {{Rummikub|czerni|black}}
}}
== Szablony map lokalizacyjnych ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Mapa lokalizacyjna/punkt|49°39′00″N 21°10′00″E|opis{{=}}Gorlice}}}}
| _1 = {{Nowiki|{{Mapa lokalizacyjna/punkt|49°39′00″N 21°10′00″E|opis=Gorlice}}}}
| 2 = {{Pre|{{s|Mapa lokalizacyjna
| mapa {{=}} Polska
| wariant {{=}} 1945
| punkty mapy {{=}}
{{s|Mapa lokalizacyjna/punkt|49°39′00″N 21°10′00″E|opis{{=}}Gorlice}}
}}}}
| _2 = {{Mapa lokalizacyjna
| mapa = Polska
| wariant = 1945
| punkty mapy =
{{Mapa lokalizacyjna/punkt|49°39′00″N 21°10′00″E|opis=Gorlice}}
}}
| 3 = {{Pre|{{s|Tabelka|klasa{{=}}infobox|{{s|Infobox mapa lokalizacyjna
| mapa {{=}} Warszawa
| wariant {{=}} 1997
| współrzędne {{=}} 52°17'04.4"N 20°56'31.7"E
| opis {{=}} Harcerski Klub Łączności SP5ZIP{{s|Br}}im. hm. Wacława Łukaszewicza
| kategoria {{=}} Jednostka harcerska infobox
}}}}
}}
| _3 = {{Tabelka|klasa=infobox|{{Infobox mapa lokalizacyjna
| mapa = Warszawa
| wariant = 1997
| współrzędne = 52°17'04.4"N 20°56'31.7"E
| opis = Harcerski Klub Łączności SP5ZIP{{Br}}im. hm. Wacława Łukaszewicza
| kategoria = Jednostka harcerska infobox
}}}}
| 4 = {{Tt|{{s|Współrzędne|57°18′22″N 4°27′32″W|umieść{{=}}w tekście}}}} i jego przekierowanie {{Tt|{{s|Koordynaty|57°18′22″N 4°27′32″W|umieść{{=}}w tekście}}}}
| _4 = {{Współrzędne|57°18′22″N 4°27′32″W|umieść=w tekście}}
}}
== Szablony flag ==
=== Szablon bander {{s|Bandera}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Bandera|POL}}}} | _1 = {{Bandera|POL}}
| 2 = {{Tt|{{s|Bandera|POL|PRL}}}} | _2 = {{Bandera|POL|PRL}}
| 3 = {{Tt|{{s|Bandera|POL|wariant{{=}}PRL}}}} | _3 = {{Bandera|POL|wariant=PRL}}
| 4 = {{Tt|{{s|Bandera|POL|nazwa{{=}}Kraków}}}} | _4 = {{Bandera|POL|nazwa=Kraków}}
| 5 = {{Tt|{{s|Bandera|POL|rozmiar{{=}}40px}}}} | _5 = {{Bandera|POL|rozmiar=40px}}
| 6 = {{Tt|{{s|Bandera|POL|altlink{{=}}Kraków}}}} | _6 = {{Bandera|POL|altlink=Kraków}}
}}
=== Szablon bander {{s|BanderaD}} ===
{{EfektKodów
| 1 = {{Tt|{{s|BanderaD|POL}}}} | _1 = {{BanderaD|POL}}
}}
=== Szablon flaga {{s|Flaga}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Flaga|POL}}}} | _1 = {{Flaga|POL}}
| 2 = {{Tt|{{s|Flaga|POL|RON}}}} | _2 = {{Flaga|POL|RON}}
| 3 = {{Tt|{{s|Flaga|POL|wariant{{=}}RON}}}} | _3 = {{Flaga|POL|wariant=RON}}
| 4 = {{Tt|{{s|Flaga|POL|rozmiar{{=}}40px}}}} | _4 = {{Flaga|POL|rozmiar=40px}}
| 5 = {{Tt|{{s|Flaga|POL|altlink{{=}}Kraków}}}} | _5 = {{Flaga|POL|altlink=Kraków}}
}}
==== Szablony flag podręczników ====
{{EfektKodów
| 1 = {{Tt|{{s|En}}}} | _1 = {{En}}
| 2 = {{Tt|{{s|Esp}}}} | _2 = {{Esp}}
| 3 = {{Tt|{{s|Gre}}}} | _3 = {{Gre}}
| 4 = {{Tt|{{s|Pl}}}} | _4 = {{Pl}}
| 5 = {{Tt|{{s|Slv}}}} | _5 = {{Slv}}
| 6 = {{Tt|{{s|Svk}}}} | _6 = {{Svk}}
}}
==== Brak flagi {{s|Brak flagi}} ====
{{EfektKodów
| 1 = {{Tt|{{s|Brak flagi|{{s|lpg|Polska}}}}}} | _1 = {{Brak flagi|{{lpg|Polska}}}}
}}
=== Szablon {{s|Flaga grafika}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Flaga grafika|Flag of None.svg}}}} | _1 = {{Flaga grafika|Flag of None.svg}}
| 2 = {{Tt|{{s|Flaga grafika|Flag of None.svg|Lorem ipsum}}}} | _2 = {{Flaga grafika|Flag of None.svg|Lorem ipsum}}
}}
=== Szablon {{s|Ilustracja flagi}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Ilustracja flagi|POL}}}} | _1 = {{Ilustracja flagi|POL}}
| 2 = {{Tt|{{s|Ilustracja flagi|POL|RON}}}} | _2 = {{Ilustracja flagi|POL|RON}}
| 3 = {{Tt|{{s|Ilustracja flagi|POL|wariant{{=}}RON}}}} | _3 = {{Ilustracja flagi|POL|wariant=RON}}
}}
=== Szablon {{s|Państwo}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Państwo|Polska}}}} | _1 = {{Państwo|Polska}}
| 2 = {{Tt|{{s|Państwo|Polska|PRL}}}} | _2 = {{Państwo|Polska|PRL}}
| 3 = {{Tt|{{s|Państwo|Polska|nazwa{{=}}Kraków}}}} | _3 = {{Państwo|Polska|nazwa=Kraków}}
| 4 = {{Tt|{{s|Państwo|Polska|rozmiar{{=}}40px}}}} | _4 = {{Państwo|Polska|rozmiar=40px}}
| 5 = {{Tt|{{s|Państwo|Polska|altlink{{=}}Kraków}}}} | _5 = {{Państwo|Polska|altlink=Kraków}}
}}
=== Szablony państw inne niż {{s|Państwo}} ===
{{EfektKodów
| 1 = {{Tt|{{s|PaństwoD|Polska}}}} | _1 = {{PaństwoD|Polska}}
| 2 = {{Tt|{{s|PaństwoL|Polska}}}} | _2 = {{PaństwoL|Polska}}
| 3 = {{Tt|{{s|PaństwoR|Polska|LIO}}}} | _3 = {{PaństwoR|Polska|LIO}}
| 4 = {{Tt|{{s|Państwolink|Polska|Kraków|wariant{{=}}PRL}}}} | _4 = {{Państwolink|Polska|Kraków|wariant=PRL}}
| 5 = {{Tt|{{s|Państwoskrót|Polska}}}} | _5 = {{Państwoskrót|Polska}}
}}
=== Szablony państw grafik - {{s|Państwo grafika}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Państwo grafika|Flag of None.svg|Lorem ipsum}}}} | _1 = {{Państwo grafika|Flag of None.svg|Lorem ipsum}}
| 2 = {{Tt|{{s|Państwo grafika|Flag of None.svg|Lorem ipsum|link}}}} | _2 = {{Państwo grafika|Flag of None.svg|Lorem ipsum|link}}
| 3 = {{Tt|{{s|Państwo grafika|Red flag.svg|Lorem ipsum|rozmiar{{=}}40x40px}}}} | _3 = {{Państwo grafika|Red flag.svg|Lorem ipsum|rozmiar=40x40px}}
| 4 = {{Tt|{{s|Państwo grafika|Ethiopian Pennants.svg|rozmiar{{=}}40x40px|Lorem ipsum}}}} | _4 = {{Państwo grafika|Ethiopian Pennants.svg|rozmiar=40x40px|Lorem ipsum}}
| 5 = {{Tt|{{s|Państwo grafika|Ethiopian Pennants.svg|Lorem ipsum|rozmiar{{=}}40x40px|border{{=}}}}}} | _5 = {{Państwo grafika|Ethiopian Pennants.svg|Lorem ipsum|rozmiar=40x40px|border=}}
}}
=== Szablony państw grafik - {{s|PaństwoL grafika}} ===
{{EfektKodów
| 1 = {{Tt|{{s|PaństwoL grafika|Flag of None.svg|Lorem ipsum}}}} | _1 = {{PaństwoL grafika|Flag of None.svg|Lorem ipsum}}
| 2 = {{Tt|{{s|PaństwoL grafika|Flag of None.svg|Lorem ipsum|link}}}} | _2 = {{PaństwoL grafika|Flag of None.svg|Lorem ipsum|link}}
| 3 = {{Tt|{{s|PaństwoL grafika|Red flag.svg|Lorem ipsum|rozmiar{{=}}40x40px}}}} | _3 = {{PaństwoL grafika|Red flag.svg|Lorem ipsum|rozmiar=40x40px}}
| 4 = {{Tt|{{s|PaństwoL grafika|Ethiopian Pennants.svg|rozmiar{{=}}40x40px|Lorem ipsum}}}} | _4 = {{PaństwoL grafika|Ethiopian Pennants.svg|rozmiar=40x40px|Lorem ipsum}}
| 5 = {{Tt|{{s|PaństwoL grafika|Ethiopian Pennants.svg|Lorem ipsum|rozmiar{{=}}40x40px|border{{=}}}}}} | _5 = {{PaństwoL grafika|Ethiopian Pennants.svg|Lorem ipsum|rozmiar=40x40px|border=}}
}}
=== Szablony mistrzostw - {{s|Państwo mistrzostwa}} ===
{{EfektKodów
| 1 = {{Tt|{{s|Państwo mistrzostwa|Polska|LMŚ 2013}}}} | _1 = {{Państwo mistrzostwa|Polska|LMŚ 2013}}
| 2 = {{Tt|{{s|Państwo mistrzostwa|POL|LMŚ 2013}}}} | _2 = {{Państwo mistrzostwa|POL|LMŚ 2013}}
| 3 = {{Tt|{{s|Państwo mistrzostwa|Stany Zjednoczone|LMŚ 2013}}}} | _3 = {{Państwo mistrzostwa|Stany Zjednoczone|LMŚ 2013}}
}}
=== Szablony skrótów map państw ===
{{EfektKodów
| 1 = {{Tt|{{s|Mapa|Polska}}}} | _1 = {{Mapa|Polska}}
| 2 = {{Tt|{{s|Mapa|Polska|PRL}}}} | _2 = {{Mapa|Polska|PRL}}
| 3 = {{Tt|{{s|Mapa|Polska|wariant{{=}}PRL}}}} | _3 = {{Mapa|Polska|wariant=PRL}}
}}
=== Szablony jednostek administracyjnych ===
{{EfektKodów
| 1 = {{Tt|{{s|Jednostki administracyjne|Polska}}}} | _1 = {{Jednostki administracyjne|Polska}}
| 2 = {{Tt|{{s|Jednostki administracyjne|Polska|PRL}}}} | _2 = {{Jednostki administracyjne|Polska|PRL}}
| 3 = {{Tt|{{s|Jednostki administracyjne|Polska|wariant{{=}}PRL}}}} | _3 = {{Jednostki administracyjne|Polska|wariant=PRL}}
}}
=== Reprezentacja ===
{{EfektKodów
| 1 = {{Tt|{{s|Reprezentacja|POL|pn}}}} | _1 = {{Reprezentacja|POL|pn}}
| 2 = {{Tt|{{s|ReprezentacjaL|POL|pn}}}} | _2 = {{ReprezentacjaL|POL|pn}}
| 3 = {{Tt|{{s|ReprezentacjaD|POL|pn}}}} | _3 = {{ReprezentacjaD|POL|pn}}
| 4 = {{Tt|{{s|Reprezentacja|DEU|wariant{{=}}DDR|pn}}}} | _4 = {{Reprezentacja|DEU|wariant=DDR|pn}}
| 5 = {{Tt|{{s|Reprezentacja|DEU|pn|rodzaj{{=}}U-21}}}} | _5 = {{Reprezentacja|DEU|pn|rodzaj=U-21}}
| 6 = {{Tt|{{s|ReprezentacjaL|DEU|wariant{{=}}DDR|pn}}}} | _6 = {{ReprezentacjaL|DEU|wariant=DDR|pn}}
| 7 = {{Tt|{{s|ReprezentacjaL|DEU|pn|rodzaj{{=}}U-21}}}} | _7 = {{ReprezentacjaL|DEU|pn|rodzaj=U-21}}
| 8 = {{Tt|{{s|ReprezentacjaD|DEU|wariant{{=}}DDR|pn}}}} | _8 = {{ReprezentacjaD|DEU|wariant=DDR|pn}}
| 9 = {{Tt|{{s|ReprezentacjaD|DEU|pn|rodzaj{{=}}U-21}}}} | _9 = {{ReprezentacjaD|DEU|pn|rodzaj=U-21}}
}}
=== Szablony związane z militariami ===
{{EfektKodów
| 1 = {{Tt|{{s|FIAV|100000}}}} | _1 = {{FIAV|100000}}
| 2 = {{Tt|{{s|FIAV|proposal}}}} | _2 = {{FIAV|proposal}}
}}
=== Szablony związane z rugby ===
{{EfektKodów
| 1 = {{Tt|{{s|Zespół ru|Blues|L}}}} | _1 = {{Zespół ru|Blues|L}}
| 2 = {{Tt|{{s|Zespół ru|Connacht|P}}}} | _2 = {{Zespół ru|Connacht|P}}
| 3 = {{Tt|{{s|Zespół ru|Quins}}}} | _3 = {{Zespół ru|Quins}}
| 4 = {{Tt|{{s|Zespół ru|Cats|L|1910}}}} | _4 = {{Zespół ru|Cats|L|1910}}
}}
=== Szablony terytorium ===
{{EfektKodów
| 1 = {{Tt|{{s|Terytorium zależne|MTQ}}}} | _1 = {{Terytorium zależne|MTQ}}
| 2 = {{Tt|{{s|Nazwa terytorium|MTQ}}}} | _2 = {{Nazwa terytorium|MTQ}}
}}
== Szablony do obliczeń matematycznych ==
=== Szablony warunkowe ===
==== Szablon {{s|Jeśli równe}} ====
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|Jeśli równe|1|2|wtedy{{=}}<nowiki><MATH>1 = 2</MATH></nowiki>|przeciwnie{{=}}<nowiki><math>1 \neq 2</math></nowiki>}}}}
| _1 = {{Jeśli równe|1|2|wtedy=<math>1 = 2</math>|przeciwnie=<math>1 \neq 2</math>}}
| 2 = {{Tt|{{s|Jeśli równe|1cm|10mm|wtedy{{=}}<nowiki><MATH>1cm = 10mm</MATH></nowiki>|przeciwnie{{=}}<nowiki><MATH>1cm \neq 10mm</MATH></nowiki>}}}}
| _2 = {{Jeśli równe|1cm|10mm|wtedy=<MATH>1cm = 10mm</MATH>|przeciwnie=<MATH>1cm \neq 10mm</MATH>}}
| 3 = {{Tt|{{s|Jeśli równe|15px|16Q|dokładność{{=}}0|wtedy{{=}}<nowiki><MATH>15px = 16Q</MATH></nowiki>|przeciwnie{{=}}<nowiki><MATH>15px \neq 16Q</MATH></nowiki>}}}}
| _3 = {{Jeśli równe|15px|16Q|dokładność=0|wtedy=<math>15px = 16Q</math>|przeciwnie=<math>15px \neq 16Q</math>}}
| 4 = {{Tt|{{s|Jeśli równe|Konik|Konik|wtedy{{=}}Konik to Konik|przeciwnie{{=}}co???}}}}
| _4 = {{Jeśli równe|Konik|Konik|wtedy=Konik to Konik|przeciwnie=co???}}
| 5 = {{Tt|{{s|Jeśli równe|Konik|Konik|inaczej{{=}}tak|łącznik{{=}}<nowiki><MATH>\neq</MATH></nowiki>}}}}
| _5 = {{Jeśli równe|Konik|Konik|inaczej=tak|łącznik=<MATH>\neq</MATH>}}
| 6 = {{Tt|{{s|Jeśli równe|Konik|Kucyk|inaczej{{=}}tak|łącznik{{=}}<nowiki><MATH>\neq</MATH></nowiki>}}}}
| _6 = {{Jeśli równe|Konik|Kucyk|inaczej=tak|łącznik=<MATH>\neq</MATH>}}
| 7 = {{Tt|{{s|Jeśli równe|Konik||inaczej{{=}}tak|łącznik{{=}}<nowiki><MATH>\neq</MATH></nowiki>}}}}
| _7 = {{Jeśli równe|Konik||inaczej=tak|łącznik=<MATH>\neq</MATH>}}
| 8 = {{Tt|{{s|Jeśli równe||Konik|inaczej{{=}}tak|łącznik{{=}}<nowiki><MATH>\neq</MATH></nowiki>}}}}
| _8 = {{Jeśli równe||Konik|inaczej=tak|łącznik=<MATH>\neq</MATH>}}
}}
==== Jeśli większe ====
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|#if:{{s|Jeśli większe|1cm|20px}}|Tak|Nie}}}}
| _1 = {{#if:{{Jeśli większe|1cm|20px}}|Tak|Nie}}
| 2 = {{Tt|{{s|#if:{{s|Jeśli większe|20px|1cm}}|Tak|Nie}}}}
| _2 = {{#if:{{Jeśli większe|20px|1cm}}|Tak|Nie}}
| 3 = {{Tt|{{s|#if:{{s|Jeśli większe|2|1}}|Tak|Nie}}}}
| _3 = {{#if:{{Jeśli większe|2|1}}|Tak|Nie}}
| 4 = {{Tt|{{s|#if:{{s|Jeśli większe|1|2}}|Tak|Nie}}}}
| _4 = {{#if:{{Jeśli większe|1|2}}|Tak|Nie}}
}}
==== Szablony typowo warunkowe ====
===== Szablony typu '''Jeśli''' =====
====== Szablon {{s|Jeśli niepuste}} ======
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|Jeśli niepuste|1|2}}}}
| _1 = {{Jeśli niepuste|1|2}}
| 2 = {{Tt|{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b}}}}
| _2 = {{Jeśli niepuste|1|2|przed=a|po=b}}
| 3 = {{Tt|{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d}}}}
| _3 = {{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d}}
| 4 = {{Tt|{{s|Jeśli niepuste||2}}}}
| _4 = {{Jeśli niepuste||2}}
| 5 = {{Tt|{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _5 = {{Jeśli niepuste|1|2|przed=a|po=b|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}
| 6 = {{Tt|{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _6 = {{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}
| 7 = {{Tt|{{s|Jeśli niepuste||2|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _7 = {{Jeśli niepuste||2|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}
| 8 = {{Tt|{{s|Jeśli niepuste||2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik lewy{{=}}span|styl lewy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _8 = {{Jeśli niepuste||2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik lewy=span|styl lewy=font-size:12px;line-height:1.2em;color:red;}}
| 9 = {{Tt|{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _9 = {{Jeśli niepuste|1|2|przed=a|po=b|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}
| 10 = {{Tt|{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _10 = {{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}
| 11 = {{Tt|{{s|Jeśli niepuste||2|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _11 = {{Jeśli niepuste||2|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}
| 12 = {{Tt|{{s|Jeśli niepuste||2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik prawy{{=}}span|styl prawy{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _12 = {{Jeśli niepuste||2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik prawy=span|styl prawy=font-size:12px;line-height:1.2em;color:red;}}
| 13 = {{Tt|{{s|Jeśli niepuste|1|2|przed{{=}}a|po{{=}}b|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _13 = {{Jeśli niepuste|1|2|przed=a|po=b|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}
| 14 = {{Tt|{{s|Jeśli niepuste|1|2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _14 = {{Jeśli niepuste|1|2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}
| 15 = {{Tt|{{s|Jeśli niepuste||2|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _15 = {{Jeśli niepuste||2|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}
| 16 = {{Tt|{{s|Jeśli niepuste||2|przed lewy{{=}}a|po lewy{{=}}b|przed prawy{{=}}c|po prawy{{=}}d|znacznik{{=}}span|styl{{=}}font-size:12px;line-height:1.2em;color:red;}}}}
| _16 = {{Jeśli niepuste||2|przed lewy=a|po lewy=b|przed prawy=c|po prawy=d|znacznik=span|styl=font-size:12px;line-height:1.2em;color:red;}}
}}
====== Szablon {{s|Jeśli niepuste komunikat}} ======
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|Ambox|typ{{=}}poważny|tekst{{=}}{{s|Jeśli niepuste komunikat|<nowiki><ul><li>Oto jest błąd.</li></ul></nowiki>|NPA|Tekst szablonu.}}}}}}
| _1 = {{Ambox|typ=poważny|tekst={{Jeśli niepuste komunikat|<ul><li>Oto jest błąd.</li></ul>|NPA|Tekst szablonu.}}}}
| 2 = {{Pre|{{s|Ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat||NPA|Tekst szablonu.}}}}}}
| _2 = {{Ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat||NPA|Tekst szablonu.}}}}
| 3 = {{Pre|{{s|Ambox|typ{{=}}poważny|tekst{{=}}{{s|Jeśli niepuste komunikat|<nowiki><ul><li>Oto jest błąd.</li></ul></nowiki>|wtedy{{=}}<nowiki>'''</nowiki>Szablon zgłosił następujące błędy:<nowiki>'''</nowiki>|przeciwnie{{=}}Tekst szablonu.}}}}}}
| _3 = {{Ambox|typ=poważny|tekst={{Jeśli niepuste komunikat|<ul><li>Oto jest błąd.</li></ul>|wtedy='''Szablon zgłosił następujące błędy:'''|przeciwnie=Tekst szablonu.}}}}
| 4 = {{Pre|{{s|Ambox|typ{{=}}zawartość|tekst{{=}}{{s|Jeśli niepuste komunikat||wtedy{{=}}<nowiki>'''</nowiki>Szablon zgłosił następujące błędy:<nowiki>'''</nowiki>|przeciwnie{{=}}Tekst szablonu.}}}}}}
| _4 = {{Ambox|typ=zawartość|tekst={{Jeśli niepuste komunikat||wtedy='''Szablon zgłośił następujące błędy:'''|przeciwnie=Tekst szablonu.}}}}
}}
====== Szablon {{s|Jeśli istnieje}} ======
{{EfektKodów
| 1 = {{Tt|{{s|Jeśli istnieje|Spis treści|Strona główna|przedrostek{{=}}Pomoc:}}}}
| _1 = {{Jeśli istnieje|Spis treści|Strona główna|przedrostek=Pomoc:}}
| 2 = {{Tt|{{s|Jeśli istnieje|Strona główna|Spis treści|przedrostek{{=}}Pomoc:}}}}
| _2 = {{Jeśli istnieje|Strona główna|Spis treści|przedrostek=Pomoc:}}
}}
===== Inne szablony =====
====== Szablon {{s|Pierwszy niepusty}} ======
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|2{{=}}Tak tutaj}}}}
| _1 = {{Pierwszy niepusty|1=|2=Tak tutaj}}
| 2 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}tak|2{{=}}Tak tutaj}}}}
| _2 = {{Pierwszy niepusty|1=|test2=tak|2=Tak tutaj}}
| 3 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}|2{{=}}Tak tutaj|test3{{=}}tak|3{{=}}Tak, ale tutaj}}}}
| _3 = {{Pierwszy niepusty|1=|test2=|2=Tak tutaj|test3=tak|3=Tak, ale tutaj}}
| 4 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}|2{{=}}Tak tutaj|3{{=}}Tak, ale tutaj}}}}
| _4 = {{Pierwszy niepusty|1=|test2=|2=Tak tutaj|3=Tak, ale tutaj}}
| 5 = {{Tt|{{s|Pierwszy niepusty|1{{=}}|test2{{=}}|2{{=}}Tak tutaj|test3{{=}}tak}}}}
| _5 = {{Pierwszy niepusty|1=|test2=|2=Tak tutaj|test3=tak}}
}}
=== Szablony jednostek ===
{{EfektKodów
| 1 = {{Tt|{{s|Liczba z absolutną jednostką długości|2}}}}
| _1 = {{Liczba z absolutną jednostką długości|2}}
| 2 = {{Tt|{{s|Liczba z absolutną jednostką długości|2px}}}}
| _2 = {{Liczba z absolutną jednostką długości|2px}}
| 3 = {{Tt|{{s|Maksimum|1|2}}}}
| _3 = {{Maksimum|1|2}}
| 4 = {{Tt|{{s|Maksimum|2|1}}}}
| _4 = {{Maksimum|2|1}}
| 5 = {{Tt|{{s|Maksimum|40px|1cm}}}}
| _5 = {{Maksimum|40px|1cm}}
| 6 = {{Tt|{{s|Minimum|1|2}}}}
| _6 = {{Minimum|1|2}}
| 7 = {{Tt|{{s|Minimum|2|1}}}}
| _7 = {{Minimum|2|1}}
| 8 = {{Tt|{{s|Minimum|40px|1cm}}}}
| _8 = {{Minimum|40px|1cm}}
| 9 = {{Tt|{{s|W pikselach|15px}}}}
| _9 = {{W pikselach|15px}}
| 10 = {{Tt|{{s|W pikselach|15pc}}}}
| _10 = {{W pikselach|15pc}}
| 11 = {{Tt|{{s|W pikselach|15pt}}}}
| _11 = {{W pikselach|15pt}}
| 12 = {{Tt|{{s|W pikselach|15in}}}}
| _12 = {{W pikselach|15in}}
| 13 = {{Tt|{{s|W pikselach|15Q}}}}
| _13 = {{W pikselach|15Q}}
| 14 = {{Tt|{{s|W pikselach|15mm}}}}
| _14 = {{W pikselach|15mm}}
| 15 = {{Tt|{{s|W pikselach|15cm}}}}
| _15 = {{W pikselach|15cm}}
| 16 = {{Tt|{{s|W pikselach|15cm|7}}}}
| _16 = {{W pikselach|15cm|7}}
| 17 = {{Tt|{{s|W pikselach|15cm|-2}}}}
| _17 = {{W pikselach|15cm|-2}}
}}
=== Szablony funkcji matematycznych ===
{{EfektKodów
| 1 = {{Tt|{{s|Ogranicz|100}}}}
| _1 = {{Ogranicz|100}}
| 2 = {{Tt|{{s|Ogranicz|300}}}}
| _2 = {{Ogranicz|300}}
| 3 = {{Tt|{{s|Ogranicz|30}}}}
| _3 = {{Ogranicz|30}}
}}
=== Szablony do rozwiązań technicznych ===
{{EfektKodów
| 1 = {{Tt|{{s|Jeśli niepuste|{{s|Void}}|-}}}}
| _1 = {{Jeśli niepuste|{{Void}}|-}}
}}
== Szablony ikon ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|Ikona|archiwum|50|dosuń{{=}}do prawej|alt{{=}}Wyświetlany zamiast rysunku.|opis{{=}}Oto jest archiwum.}}}}}
| _1 = {{Ikona|archiwum|50|dosuń=do prawej|alt=Wyświetlany zamiast rysunku.|opis=Oto jest archiwum.}}
| 2 = {{Tt|{{s|Ikona|meta|75|dosuń{{=}}do lewej|alt{{=}}Wyświetlany zamiast rysunku.|opis{{=}}Oto jest archiwum.}}}}}
| _2 = {{Ikona|meta|75|dosuń=do lewej|alt=Wyświetlany zamiast rysunku.|opis=Oto jest archiwum.}}
| 3 = {{Tt|{{s|Ikona|promocja|35|dosuń{{=}}do środka|alt{{=}}Wyświetlany zamiast rysunku.|opis{{=}}Oto jest archiwum.}}}}}
| _3 = {{Ikona|promocja|35|dosuń=do środka|alt=Wyświetlany zamiast rysunku.|opis=Oto jest archiwum.}}
}}
== Testowanie szablonu ==
{{EfektKodów
| 1 = {{Tt|{{s|Przypadek testowy|{{=}}Ambox{{s|!}}brudnopis{{s|{{=}}}}Ambox{{s|!}}pionowo|typ{{=}}poważny}}}}
| _1 = Ten szablon generuje tabelę stosowaną na {{lpr|Brudnopisy i strony testowe szablonów|stronach testowych szablonów}}, która zestawia obok siebie dwie wersje szablonów – szablon główny i jego wersję z brudnopisu. Oba przedstawiane szablony wykorzystują te same parametry.
{{Hr}}
{{Przypadek testowy|=Ambox{{!}}brudnopis{{=}}Ambox{{!}}pionowo|typ=poważny}}
}}
== Szablony ciągów i dopasowywanie do wzorca ==
{{EfektKodów|kod-rozmiar=35%
| 1 = {{Tt|{{s|Długość|ciąg{{=}}abc}}}}
| _1 = {{Długość|ciąg=abc}}
| 2 = {{Tt|{{s|Subciąg|ciąg{{=}}1234567|od{{=}}2|do{{=}}4}}}}
| _2 = {{Subciąg|ciąg=1234567|od=2|do=4}}
| 3 = {{Tt|{{s|Subciąg2|ciąg{{=}}1234567|od{{=}}2|długość{{=}}3}}}}
| _3 = {{Subciąg2|ciąg=1234567|od=2|długość=3}}
| 4 = {{Tt|{{s|Dopasuj|ciąg{{=}}123a45b67|wzór{{=}}%a+|które{{=}}2}}}}
| _4 = {{Dopasuj|ciąg=123a45b67|wzór=%a+|które=2}}
| 5 = {{Tt|{{s|Pobierz|ciąg{{=}}1234567|pozycja{{=}}5}}}}
| _5 = {{Pobierz|ciąg=1234567|pozycja=5}}
| 6 = {{Tt|{{s|Wyszukaj|ciąg{{=}}123s456|cel{{=}}s}}}}
| _6 = {{Wyszukaj|ciąg=123s456|cel=s}}
| 7 = {{Tt|{{s|Znajdź|ciąg{{=}}123%s456|cel{{=}}%a}}}}
| _7 = {{Znajdź|ciąg=123%s456|cel=%a}}
| 8 = {{Tt|{{s|Zastąp|ciąg{{=}}123s45s6|wzór{{=}}%a|zamień{{=}}q}}}}
| _8 = {{Zastąp|ciąg=123s45s6|wzór=%a|zamień=q}}
| 9 = {{Tt|{{s|Powtórz|ciąg{{=}}123s456|ile{{=}}2}}}}
| _9 = {{Powtórz|ciąg=123s456|ile=2}}
| 10 = {{Tt|{{s|Łącz|łącznik{{=}}.|parametr{{=}}1|parametr 2{{=}}2|4{{=}}3|parametr 4{{=}}4}}}}
| _10 = {{Łącz|łącznik=.|parametr=1|parametr 2=2|4=3|parametr 4=4}}
}}
== Szablony parsera tag ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|FormularzWejścia|typ{{=}}search|przestrzenie{{=}}Wikijunior|przerwa{{=}}no|szukaj{{=}}Szukaj!}}}}
| _1 = {{FormularzWejścia|typ=search|przestrzenie=Wikijunior|przerwa=no|szukaj=Szukaj!}}
| h_2 = 150px
| 2 = {{Tt|{{s|ListaKategorii|Astronomia i fizyka}}}}
| _2 = {{ListaKategorii|Astronomia i fizyka}}
}}
== Wyświetlane dymki po najechaniu myszką ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|W tym okresie ich genomy pozostają w zakażonych komórkach jako formy latentne. W stanie utajenia ekspresja informacji genetycznej faga jest ograniczona tylko do genów, których produkty są odpowiedzialne za utrzymanie tego stanu (lizogenii) {{s|Odnośnik|[Fortier & Sekulovic, 2013]|Fortier, L. C., & Sekulovic, O. (2013). Importance of prophages to evolution and virulence of bacterial pathogens. Virulence, 4(5), 354-365.}}.}}
| _1 = W tym okresie ich genomy pozostają w zakażonych komórkach jako formy latentne. W stanie utajenia ekspresja informacji genetycznej faga jest ograniczona tylko do genów, których produkty są odpowiedzialne za utrzymanie tego stanu (lizogenii) {{Odnośnik|[Fortier & Sekulovic, 2013]|Fortier, L. C., & Sekulovic, O. (2013). Importance of prophages to evolution and virulence of bacterial pathogens. Virulence, 4(5), 354-365.}}.
}}
{{BrClear}}
<noinclude>{{Kategoria|Wizualne opisy techniczne szablonów}}</noinclude>
opmjwq2gtko5krozlbthe2yfacr6mzg
Szablon:Jeśli większe
10
61444
557861
509802
2026-09-29T03:59:59Z
Persino
2851
557861
wikitext
text/x-wiki
<includeonly><!--
-->{{#ifexpr: <!-- Pierwszy składnik warunku
-->{{#if:{{{nie piksele|}}} <!-- wyłącza pikselowanie zmiennej 1 -->
|{{{1|0}}}
|<!-- warunek czy to są jednostki CSS
-->{{#if:{{Dopasuj|ciąg={{{1|0}}}|wzór=%d+%s*%a*}}<!-- Sprawdza, czy to jest miara w jednostkach lub tylko w pikselach bez podania jednostki-->
|{{W pikselach|{{{1|0}}}|{{{dokładność|3}}}}} <!-- Przelicza na piksele bez podania jego jednostki -->
|{{{1|0}}}
}}
}} <!--
--><!-- Drugi składnik warunku
--> > <!--
-->{{#if:{{{nie piksele|}}} <!-- wyłącza pikselowanie zmiennej 2 -->
|{{{2|0}}}
|<!-- warunek czy to są jednostki CSS
-->{{#if:{{Dopasuj|ciąg={{{2|0}}}|wzór=%d+%s*%a*}}<!-- Sprawdza, czy to jest miara w jednostkach lub tylko w pikselach bez podania jednostki-->
|{{W pikselach|{{{2|0}}}|{{{dokładność|3}}}}} <!-- Przelicza na piksele bez podania jego jednostki -->
|{{{2|0}}}
}}
}}
|<!-- Gdy pierwsza zmienna składnika warunku jest większa od drugiej
-->{{{3|{{{wtedy|{{#if:{{{inaczej|}}} <!-- Gdy inaczej niepuste i gdy pierwszy składnik jest większy, nie podano zmiennej 3 i wtedy, to wyświetl zmienną 1 -->
|{{{1}}}
}}<!--
-->}}}}}}
|<!-- Gdy oba składniki pierwsza zmienna nie jest większa od drugiej
-->{{{4|{{{przeciwnie|{{#if:{{{inaczej|}}} <!-- Gdy inaczej niepuste i gdy pierwszy składnik warunku jest większy od drugiej, nie podano zmiennej 3 i wtedy, to wyświetl zmienną 1 -->
|{{{1}}}{{#if:{{{2|}}}<!-- Jeśli dodatkowo, jeśli zmienna 2 jest niepusta to wyświetl 2, a jeśli 1 jest niepuste, to wyświetl 1 i 2 z łącznikiem -->
|{{#if:{{{1}}} <!-- Jeśli dodatkowo, jeśli zmienna 2 jest niepusta to wyświetl 2, a jeśli 1 jest niepuste, to wyświetl 1 i 2 z łącznikiem -->
|{{{łącznik|:}}}
}}{{{2}}}
}}
}}<!--
-->}}}}}}<!--
-->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
d0clqe5s8sntlxc1ur4hthz9i498caq
557872
557861
2026-09-29T04:23:18Z
Persino
2851
557872
wikitext
text/x-wiki
<includeonly><!--
-->{{#ifexpr: <!-- Pierwszy składnik warunku
-->{{#if:{{{nie piksele|}}} <!-- wyłącza pikselowanie zmiennej 1 -->
|{{{1|0}}}
|<!-- warunek czy to są jednostki CSS
-->{{#if:{{Dopasuj|ciąg={{{1|0}}}|wzór=%d+%s*%a*}}<!-- Sprawdza, czy to jest miara w jednostkach lub tylko w pikselach bez podania jednostki-->
|{{W pikselach|{{{1|0}}}|{{{dokładność|5}}}}} <!-- Przelicza na piksele bez podania jego jednostki -->
|{{{1|0}}}
}}
}} <!--
--><!-- Drugi składnik warunku
--> > <!--
-->{{#if:{{{nie piksele|}}} <!-- wyłącza pikselowanie zmiennej 2 -->
|{{{2|0}}}
|<!-- warunek czy to są jednostki CSS
-->{{#if:{{Dopasuj|ciąg={{{2|0}}}|wzór=%d+%s*%a*}}<!-- Sprawdza, czy to jest miara w jednostkach lub tylko w pikselach bez podania jednostki-->
|{{W pikselach|{{{2|0}}}|{{{dokładność|5}}}}} <!-- Przelicza na piksele bez podania jego jednostki -->
|{{{2|0}}}
}}
}}
|<!-- Gdy pierwsza zmienna składnika warunku jest większa od drugiej
-->{{{3|{{{wtedy|{{#if:{{{inaczej|}}} <!-- Gdy inaczej niepuste i gdy pierwszy składnik jest większy, nie podano zmiennej 3 i wtedy, to wyświetl zmienną 1 -->
|{{{1}}}
}}<!--
-->}}}}}}
|<!-- Gdy oba składniki pierwsza zmienna nie jest większa od drugiej
-->{{{4|{{{przeciwnie|{{#if:{{{inaczej|}}} <!-- Gdy inaczej niepuste i gdy pierwszy składnik warunku jest większy od drugiej, nie podano zmiennej 3 i wtedy, to wyświetl zmienną 1 -->
|{{{1}}}{{#if:{{{2|}}}<!-- Jeśli dodatkowo, jeśli zmienna 2 jest niepusta to wyświetl 2, a jeśli 1 jest niepuste, to wyświetl 1 i 2 z łącznikiem -->
|{{#if:{{{1}}} <!-- Jeśli dodatkowo, jeśli zmienna 2 jest niepusta to wyświetl 2, a jeśli 1 jest niepuste, to wyświetl 1 i 2 z łącznikiem -->
|{{{łącznik|:}}}
}}{{{2}}}
}}
}}<!--
-->}}}}}}<!--
-->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
fpr5z5artyu2969z4y5j9exy3bysquk
557883
557872
2026-09-29T04:55:08Z
Persino
2851
557883
wikitext
text/x-wiki
<includeonly><!--
-->{{#ifexpr: <!-- Pierwszy składnik warunku
-->{{#if:{{{nie piksele|}}} <!-- wyłącza pikselowanie zmiennej 1 -->
|{{{1|0}}}
|<!-- warunek czy to są jednostki CSS
-->{{#if:{{Dopasuj|ciąg={{{1|0}}}|wzór=%d+%s*%a*}}<!-- Sprawdza, czy to jest miara w jednostkach lub tylko w pikselach bez podania jednostki-->
|{{W pikselach|{{{1|0}}}|{{{dokładność|{{{5|3}}}}}}}} <!-- Przelicza na piksele bez podania jego jednostki -->
|{{{1|0}}}
}}
}} <!--
--><!-- Drugi składnik warunku
--> > <!--
-->{{#if:{{{nie piksele|}}} <!-- wyłącza pikselowanie zmiennej 2 -->
|{{{2|0}}}
|<!-- warunek czy to są jednostki CSS
-->{{#if:{{Dopasuj|ciąg={{{2|0}}}|wzór=%d+%s*%a*}}<!-- Sprawdza, czy to jest miara w jednostkach lub tylko w pikselach bez podania jednostki-->
|{{W pikselach|{{{2|0}}}|{{{dokładność|{{{5|3}}}}}}}} <!-- Przelicza na piksele bez podania jego jednostki -->
|{{{2|0}}}
}}
}}
|<!-- Gdy pierwsza zmienna składnika warunku jest większa od drugiej
-->{{{3|{{{wtedy|{{#if:{{{inaczej|}}} <!-- Gdy inaczej niepuste i gdy pierwszy składnik jest większy, nie podano zmiennej 3 i wtedy, to wyświetl zmienną 1 -->
|{{{1}}}
}}<!--
-->}}}}}}
|<!-- Gdy oba składniki pierwsza zmienna nie jest większa od drugiej
-->{{{4|{{{przeciwnie|{{#if:{{{inaczej|}}} <!-- Gdy inaczej niepuste i gdy pierwszy składnik warunku jest większy od drugiej, nie podano zmiennej 3 i wtedy, to wyświetl zmienną 1 -->
|{{{1}}}{{#if:{{{2|}}}<!-- Jeśli dodatkowo, jeśli zmienna 2 jest niepusta to wyświetl 2, a jeśli 1 jest niepuste, to wyświetl 1 i 2 z łącznikiem -->
|{{#if:{{{1}}} <!-- Jeśli dodatkowo, jeśli zmienna 2 jest niepusta to wyświetl 2, a jeśli 1 jest niepuste, to wyświetl 1 i 2 z łącznikiem -->
|{{{łącznik|:}}}
}}{{{2}}}
}}
}}<!--
-->}}}}}}<!--
-->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
l6lmxo4dg5pg1v5tnaqgwey1hxznc1h
Szablon:Jeśli większe/opis
10
61445
557870
509803
2026-09-29T04:12:27Z
Persino
2851
/* Zobacz też */
557870
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
== Opis parametrów ==
== Przykład ==
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
}
}
</templatedata>
== Zobacz też ==
{{Jeśli równe/opis/Zobacz też}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony warunkowe
| Szablony do obliczeń matematycznych
}}
</includeonly>
l15hihqv2u5rmdxaus43v6vuqhmvxj6
557873
557870
2026-09-29T04:26:55Z
Persino
2851
/* Opis parametrów */
557873
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
== Opis parametrów ==
* {{Code|1}} i {{Code|2}} - pierwszy i drugi parametr szablonu, podane w celu ich porównania ich ze sobą, mogą być one w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{s|W pikselach}},
* {{Code|5}} lub {{Code|dokładność}} - szablon określa z jaką dokładnością, liczba z jednostką bezwzględną, ma być zamieniona na liczbę w pikselach, wartość domyślna to {{Parametr|dokładność|3}},
* {{Code|nie piksele}} - szablon nie przelicza parametrów: {{Code|1}} i {{Code|2}}, na piksele na liczbę bez jednostki, jeśli one są w obsługiwanych jednostkach długości,
* {{Code|3}} lub {{Code|wtedy}} - zawartość tego parametru jest wyświetlana, gdy parametr: {{Code|1}}, jest większy od: {{Code|2}},
* {{Code|4}} lub {{Code|przeciwnie}} - zawartość tego parametru jest wyświetlana, gdy parametr: {{Code|1}}, nie jest większy od: {{Code|2}},
* {{Code|inaczej}} - gdy pierwsza wartość jest większa od drugiej, to szablon wyświetla pierwszy parametr, gdy jest inaczej to on wyświetla te parametry w raz z łącznikiem {{Code|łącznik}}, który domyślnie jest równy {{Parametr|łącznik|:}}, gdy któraś z wartości z tych dwóch jest wartością pustą, to on szablon wyświetla tą wartość niepustą,
* {{Code|łącznik}} - używana wraz z parametrem {{Code|inaczej}} (opis powyżej).
== Przykład ==
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
}
}
</templatedata>
== Zobacz też ==
{{Jeśli równe/opis/Zobacz też}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony warunkowe
| Szablony do obliczeń matematycznych
}}
</includeonly>
202t6pe6ldyiyw0z94bppd39hqshohg
557874
557873
2026-09-29T04:29:05Z
Persino
2851
/* Opis parametrów */
557874
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
== Opis parametrów ==
* {{Code|1}} i {{Code|2}} - pierwszy i drugi parametr szablonu, podane w celu ich porównania ich ze sobą, mogą być one w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{s|W pikselach}},
* {{Code|5}} lub {{Code|dokładność}} - szablon określa z jaką dokładnością, liczba z jednostką bezwzględną, ma być zamieniona na liczbę w pikselach, wartość domyślna to {{Parametr|dokładność|3}},
* {{Code|nie piksele}} - szablon nie przelicza parametrów: {{Code|1}} i {{Code|2}}, na piksele na liczbę bez jednostki, jeśli one są w obsługiwanych jednostkach długości,
* {{Code|3}} lub {{Code|wtedy}} - zawartość tego parametru jest wyświetlana, gdy parametr: {{Code|1}}, jest większy od: {{Code|2}},
* {{Code|4}} lub {{Code|przeciwnie}} - zawartość tego parametru jest wyświetlana, gdy parametr: {{Code|1}}, nie jest większy od: {{Code|2}},
* {{Code|inaczej}} - gdy pierwsza wartość jest większa od drugiej, to szablon wyświetla pierwszy parametr, gdy jest inaczej to on wyświetla te parametry wraz z łącznikiem {{Code|łącznik}}, który domyślnie jest równy {{Parametr|łącznik|:}}, gdy któraś z wartości z tych dwóch jest wartością pustą, to on szablon wyświetla tą wartość niepustą,
* {{Code|łącznik}} - używana wraz z parametrem {{Code|inaczej}} (opis powyżej).
== Przykład ==
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
}
}
</templatedata>
== Zobacz też ==
{{Jeśli równe/opis/Zobacz też}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony warunkowe
| Szablony do obliczeń matematycznych
}}
</includeonly>
18q63hpn9lqjv76220wh8dnvm4tk72p
557878
557874
2026-09-29T04:38:01Z
Persino
2851
/* Użycie */
557878
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Szablon warunkowy porównujący dwie wartości, czy pierwsza jest większa od drugiej, ewentualnie w dwóch różnych jednostkach długości ze sobą.
== Opis parametrów ==
* {{Code|1}} i {{Code|2}} - pierwszy i drugi parametr szablonu, podane w celu ich porównania ich ze sobą, mogą być one w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{s|W pikselach}},
* {{Code|5}} lub {{Code|dokładność}} - szablon określa z jaką dokładnością, liczba z jednostką bezwzględną, ma być zamieniona na liczbę w pikselach, wartość domyślna to {{Parametr|dokładność|3}},
* {{Code|nie piksele}} - szablon nie przelicza parametrów: {{Code|1}} i {{Code|2}}, na piksele na liczbę bez jednostki, jeśli one są w obsługiwanych jednostkach długości,
* {{Code|3}} lub {{Code|wtedy}} - zawartość tego parametru jest wyświetlana, gdy parametr: {{Code|1}}, jest większy od: {{Code|2}},
* {{Code|4}} lub {{Code|przeciwnie}} - zawartość tego parametru jest wyświetlana, gdy parametr: {{Code|1}}, nie jest większy od: {{Code|2}},
* {{Code|inaczej}} - gdy pierwsza wartość jest większa od drugiej, to szablon wyświetla pierwszy parametr, gdy jest inaczej to on wyświetla te parametry wraz z łącznikiem {{Code|łącznik}}, który domyślnie jest równy {{Parametr|łącznik|:}}, gdy któraś z wartości z tych dwóch jest wartością pustą, to on szablon wyświetla tą wartość niepustą,
* {{Code|łącznik}} - używana wraz z parametrem {{Code|inaczej}} (opis powyżej).
== Przykład ==
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
}
}
</templatedata>
== Zobacz też ==
{{Jeśli równe/opis/Zobacz też}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony warunkowe
| Szablony do obliczeń matematycznych
}}
</includeonly>
iq2dzafyka82tbwscof2dwugw8uvvwo
557881
557878
2026-09-29T04:52:10Z
Persino
2851
557881
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Szablon warunkowy porównujący dwie wartości, czy pierwsza jest większa od drugiej, ewentualnie w dwóch różnych jednostkach długości ze sobą.
== Opis parametrów ==
* {{Code|1}} i {{Code|2}} - pierwszy i drugi parametr szablonu, podane w celu ich porównania ich ze sobą, mogą być one w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{s|W pikselach}},
* {{Code|5}} lub {{Code|dokładność}} - szablon określa z jaką dokładnością, liczba z jednostką bezwzględną, ma być zamieniona na liczbę w pikselach, wartość domyślna to {{Parametr|dokładność|3}},
* {{Code|nie piksele}} - szablon nie przelicza parametrów: {{Code|1}} i {{Code|2}}, na piksele na liczbę bez jednostki, jeśli one są w obsługiwanych jednostkach długości,
* {{Code|3}} lub {{Code|wtedy}} - zawartość tego parametru jest wyświetlana, gdy parametr: {{Code|1}}, jest większy od: {{Code|2}},
* {{Code|4}} lub {{Code|przeciwnie}} - zawartość tego parametru jest wyświetlana, gdy parametr: {{Code|1}}, nie jest większy od: {{Code|2}},
* {{Code|inaczej}} - gdy pierwsza wartość jest większa od drugiej, to szablon wyświetla pierwszy parametr, gdy jest inaczej to on wyświetla te parametry wraz z łącznikiem {{Code|łącznik}}, który domyślnie jest równy {{Parametr|łącznik|:}}, gdy któraś z wartości z tych dwóch jest wartością pustą, to on szablon wyświetla tą wartość niepustą,
* {{Code|łącznik}} - używana wraz z parametrem {{Code|inaczej}} (opis powyżej).
== Przykład ==
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Pierwszy parametr szablonu, podane w celu jego porównania z drugim parametrem, może być ona podana w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{W pikselach}}.",
"type": "string"
},
"2": {
"description": "Drugi parametr szablonu, podane w celu jego porównania z pierwszym parametrem, może być ona podana w różnych jednostkach bezwzględnych, używając do tego celu szablonu {{W pikselach}}.",
"type": "string"
},
"3": {
"aliases": [
"wtedy"
],
"description": "Zawartość tego parametru jest wyświetlana, gdy parametr: 1, jest większy od :2.",
"type": "string"
},
"4": {
"aliases": [
"przeciwnie"
],
"description": "Zawartość tego parametru jest wyświetlana, gdy parametr: 1, jest nie jest większy od: 2.",
"type": "string"
},
"nie piksele": {
"description": "Szablon nie przelicza parametrów: 1 i 2, na piksele na liczbę bez jednostki, jeśli one są w obsługiwanych jednostkach długości.",
"type": "string"
},
"inaczej": {
"description": "Gdy pierwsza wartość jest większa od drugiej, to szablon wyświetla pierwszy parametr. A gdy warunek nie jest spełniony, to on wyświetla te parametry wraz z łącznikiem łącznik, który domyślnie jest równy | łącznik = :,, gdy któraś z wartości z tych dwóch jest wartością pustą, to on szablon wyświetla tą wartość niepustą.",
"type": "string"
},
"łącznik": {
"description": "Używana wraz z parametrem inaczej (opis powyżej).",
"type": "string"
},
"dokładność": {
"description": "Szablon określa z jaką dokładnością, liczba z jednostką bezwzględną, ma być zamieniona na liczbę w pikselach, wartość domyślna to | dokładność = 3.",
"type": "string",
"aliases": [
"5"
]
}
},
"description": "Szablon warunkowy porównujący dwie wartości, czy pierwsza jest większa od drugiej, ewentualnie w dwóch różnych jednostkach długości ze sobą.",
"paramOrder": [
"1",
"2",
"dokładność",
"3",
"4",
"nie piksele",
"inaczej",
"łącznik"
]
}
</templatedata>
== Zobacz też ==
{{Jeśli równe/opis/Zobacz też}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony warunkowe
| Szablony do obliczeń matematycznych
}}
</includeonly>
p8mksrsdf9bffswc5mtfjvxdyms53uw
Szablon:Jeśli błąd
10
61450
557857
509886
2026-09-29T03:33:37Z
Persino
2851
557857
wikitext
text/x-wiki
<includeonly>{{#iferror:{{{1}}}|{{{wtedy|{{{2}}}}}}|{{{przeciwnie|{{{1}}}}}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
my5ukv3do2voe7rqj3g2fl7ovaxdo4g
Szablon:Jeśli błąd/opis
10
61451
557866
509889
2026-09-29T04:10:06Z
Persino
2851
/* Zobacz też */
557866
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
== Opis parametrów ==
== Przykład ==
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
}
}
</templatedata>
== Zobacz też ==
{{Jeśli równe/opis/Zobacz też}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony warunkowe
| Szablony do obliczeń matematycznych
}}
</includeonly>
l15hihqv2u5rmdxaus43v6vuqhmvxj6
Moduł:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron
828
62247
557809
557797
2026-09-28T12:26:29Z
Persino
2851
557809
Scribunto
text/plain
local p={};
function p.PobieranieInformacjiRamkiRozpatrywanejStrony(self)
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi(self)
self.tabela_listy_danych_analizy_ksiazki={};
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron={};
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
self.tabela_listy_danych_analizy_ksiazki.problemy=nil;
self.tabela_listy_danych_analizy_ksiazki.licencja={};
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local function DaneNazw(pelna_nazwa_strony)
local tabela_nazw={};
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_strony,tabela_nazw);
local nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](pelna_nazwa_strony,tabela_nazw);
local nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](pelna_nazwa_strony,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](pelna_nazwa_strony,tabela_nazw);
local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_strony,tabela_nazw);
return nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu;
end;
local strona_aktualna=ksiazkowe_modul["PełnaNazwaArtykułu"]();
local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=DaneNazw(strona_aktualna);
local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")
..((nazwa_przestrzeni_ksiazki~="")and(nazwa_przestrzeni_ksiazki.."/") or "")
..nazwa_ksiazki;
local pelna_nazwa_ksiazki_ustawienia="Szablon:Podręcznik/Ustawienia/"..pelna_nazwa_ksiazki;
local techniczne_modul=require("Module:Techniczne");
local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki_ustawienia.."/config",tekst=true,};
if(ile>0)then
local frame=mw.getCurrentFrame();
local szablonowe_modul=require("Module:Szablonowe");
local nazwa_szablonu=szablonowe_modul.NazwaSzablonu(pelna_nazwa_ksiazki_ustawienia);
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local pudelko_modul=require("Module:Pudełko");
local czy_strona_niepoprawna=pudelko_modul["CzyNiepoprawnaNazwa"](strona);
if(not czy_strona_niepoprawna)then
local html_modul=require("Module:Html");
strona=html_modul.DecodeHtml(strona,true);
strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=strona_aktualna,};
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,tekst=true,};
if(ile>0)then
strona=ksiazkowe_modul["PełnaNazwaArtykułu"](strona);
if(strona~=strona_aktualna)then
local aktualna_nazwa_przestrzeni,aktualna_nazwa_przestrzeni_ksiazki,aktualna_nazwa_ksiazki,aktualna_nazwa_artykulu=nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu;
nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=DaneNazw(strona);
--local aktualna_nazwa_przestrzeni,aktualna_nazwa_przestrzeni_ksiazki,aktualna_nazwa_ksiazki,aktualna_nazwa_artykulu=DaneNazw(strona_aktualna);
self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni=aktualna_nazwa_przestrzeni;
self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki=aktualna_nazwa_przestrzeni_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki=aktualna_nazwa_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu=aktualna_nazwa_artykulu;
if((aktualna_nazwa_przestrzeni~=nazwa_przestrzeni)
or(aktualna_nazwa_przestrzeni_ksiazki~=nazwa_przestrzeni_ksiazki)
or(aktualna_nazwa_ksiazki~=nazwa_ksiazki)
or(aktualna_nazwa_artykulu~=nazwa_artykulu)
)then
local zastepcza=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępcza",}};
local parametry_modul=require("Module:Parametry");
self.tabela_listy_danych_analizy_ksiazki.alternatywna=parametry_modul.CzyTak(zastepcza);
if(not self.tabela_listy_danych_analizy_ksiazki.alternatywna)then
self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca=true;
end;
end;
end;
end;
end;
end;
end;
local tablica_zmiennych={};
tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2={};
tablica_zmiennych.linkobiekt={};
local stronicowyparser_zbieraniedanychstron_modul=require("Module:StronicowyParser/ZbieranieDanychStron");
local tabela_listy_danych_analizy_ksiazki=stronicowyparser_zbieraniedanychstron_modul.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, true,tablica_zmiennych);
local parametry_modul=require("Module:Parametry");
if(parametry_modul.TypeTable(tabela_listy_danych_analizy_ksiazki))then
local stronicowyparser_numeracjaobiektowstron_modul=require("Module:StronicowyParser/NumeracjaObiektówStron");
stronicowyparser_numeracjaobiektowstron_modul.PrzetwarzanieZebranychInformacjiDanejKorzystanejStrony(self,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
end;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.SpisRzeczyWedlePodanegoTekstu(self,tekst_artykulu,nazwa_strony,czy_artykul_korzystany, tylko_naglowek,obiekty,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_obiektow_strony_danych_kodow_specjalnych_modul,KtorySzablonMaZwracacKategorie,wzory_zamiast_kodow,tabela_elementow_strony_kodow)
----
local czy_kodowanie=((nazwa_modulu_aktualna_czy_biezaca)or(tablica_analizy_obiektow_strony_dany_modul));
----
if(not nazwa_modulu_aktualna_czy_biezaca)then
if czy_artykul_korzystany then
local nazwa_przestrzeni_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni or self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_przestrzeni_ksiazki_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki or self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
local nazwa_ksiazki_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki or self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
local nazwa_artykulu_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu or self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu;
local nazwy_modul=require("Module:Nazwy");
nazwa_modulu_aktualna_czy_biezaca=nazwy_modul["NazwaModułu"](nazwa_przestrzeni_aktualna_czy_biezaca,nazwa_przestrzeni_ksiazki_aktualna_czy_biezaca,nazwa_ksiazki_aktualna_czy_biezaca,nazwa_artykulu_aktualna_czy_biezaca);
else
nazwa_modulu_aktualna_czy_biezaca=nazwa_strony;
end;
end;
local html_modul=require("Module:Html");
nazwa_strony=html_modul.EncodeId(nazwa_strony);
-----
local tablica_spisu_tresci=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local stronicowyparser_zbieraniedanychstron_potrzebne_modul=require("Module:StronicowyParser/ZbieranieDanychStron/Potrzebne");
local szablonowe_modul=require("Module:Szablonowe");
local liczby_modul=require("Module:Liczby");
local nazwa_modulu_aktualna_czy_biezaca_szablonowa=nazwa_modulu_aktualna_czy_biezaca_szablonowa or szablonowe_modul["SzablonowaKompletnaNazwaStrony"](nazwa_modulu_aktualna_czy_biezaca);
local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local tablica_powtarzajacych_sie_elementow={};
local elementy_linku=nil;
local frame=mw.getCurrentFrame();
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local html_modul=require("Module:Html");
local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local tab_szablony=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_kontenerowe;
local tab_naglowki=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_wprowadzenia_tekstu;
----
local tab_szablony_stronicowe_niekontenerowe=stronicowyparser_obiekty_modul.szablony_stronicowe_niekontenerowe;
----
local tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego=stronicowyparser_obiekty_modul.szablony_stronicowe_kontenerowe_formatowania_wzorowego;
local tab_szablony_szablony_stron_zbiorczych=stronicowyparser_obiekty_modul.szablony_stron_zbiorczych;
local tab_szablony_inne_szablony_stron_zbiorczych=stronicowyparser_obiekty_modul.inne_szablony_stron_zbiorczych;
local tab_szablony_strona_start=stronicowyparser_obiekty_modul.szablony_stronicowe_formatowania_tekstu;
----
local tab_szablony_indeksowania=stronicowyparser_obiekty_modul.szablony_indeksowania;
---
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
----
if(czy_kodowanie)then
local szablony_sztucznego_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_sztucznego_wprowadzenia_tekstu;
local szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu;
local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu;
local SpecjalneWprowadzeniaTekstu=function(szablon,obiekt,kod,czy_szablon,czy_znacznik,czy_liczyc,funkcja1,funkcja2)
if(czy_szablon)then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local numer_parametru=szablony_sztucznego_wprowadzenia_tekstu[nazwa_szablonu];
if(numer_parametru)then
local parametr=tabela_parametrow_szablonu[numer_parametru];
if(parametr)then
local naglowek,poziom=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(parametr);
if(naglowek)then
return funkcja1(parametr);
end;
end;
else
local tabela_nazw={};
local function ParametrNR(numer)
return stronicowyparser_potrzebne_modul.SpisRzeczySzablon(nazwa_szablonu,numer,tabela_parametrow_szablonu,tabela_nazw);
end;
local parametr=ParametrNR(1);
if(parametr)then
if(czy_liczyc)then
local ile_poziom=tonumber(ParametrNR(5)) or 6;
ile_poziom=(ile_poziom>0)and ile_poziom or 1;
ile_poziom=(ile_poziom<=6) and ile_poziom or 6;
local poziom=mw.ustring.rep("=",ile_poziom);
local adres_ksiazki=ParametrNR(2);
local nazwa_modulu_aktualna_czy_biezaca_strony=adres_ksiazki and ParametrNR(2) or nazwa_modulu_aktualna_czy_biezaca;
local adres=nazwa_modulu_aktualna_czy_biezaca_strony..((parametr~="")and ("/"..parametr)or "");
adres=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(adres,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or adres;
adres=html_modul.DecodeHtml(adres,true);
parametr=ParametrNR(3) or parametr;
local dodatek=ParametrNR(4);
parametr=parametr..((dodatek) and (" "..dodatek) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=adres,tekst=true,};
local ObiektKodNumer=function(szablon,obiekt)
local tablica_analizy_obiektow_strony_dany_modul_numer=tablica_analizy_obiektow_strony_dany_modul[obiekt];
local kod_numer=1;
for name,_ in pairs(tablica_analizy_obiektow_strony_dany_modul_numer)do
kod_numer=math.max(kod_numer,name);
end;
kod_numer=kod_numer+1;
tablica_analizy_obiektow_strony_dany_modul_numer[kod_numer]=szablon;
local kod_szablonowe=szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod_numer);
return kod_szablonowe;
end;
if(ile>0)then
local parametr=poziom..parametr..poziom;
return funkcja1(parametr);
else
local szablon="<span style=\"color:red;\">"..parametr.."</span>";
local kod_parametr=ObiektKodNumer(szablon,"ZNACZNIK");
local parametr=poziom..kod_parametr..poziom;
return funkcja1(parametr);
end;
else
return funkcja1(parametr);
end;
end;
end;
end);
elseif(czy_znacznik)then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((zawartosc)and(nazwa))then
if(znaczniki_wprowadzenia_tekstu[nazwa])then
return funkcja2(nazwa,zawartosc,atrybuty);
end;
end;
end;
end;
tekst_artykulu=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(tekst_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,nazwa_modulu_aktualna_czy_biezaca,
function(szablon,obiekt,kod)
local czy_szablon=(obiekt=="SZABLON");local czy_znacznik=(obiekt=="ZNACZNIK");local czy_wikitabelka=(obiekt=="WIKITABELA");
if((czy_szablon)or(czy_znacznik)or(czy_wikitabelka))then
local wynik=SpecjalneWprowadzeniaTekstu(szablon,obiekt,kod,czy_szablon,czy_znacznik,false,function()return true;end,function()return true;end);
if(wynik)then return true,nil,nil,true;end;
local rozdzial=mw.ustring.match(szablon,"\n(=[^\n]*[^%s=][^\n]*=)[^%S\n]*\n");
if(rozdzial)then
local naglowek,poziom=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial);
if(naglowek)then
return true,nil,nil,true;
end;
end;
end;
end,
function(szablon,obiekt,kod)
local czy_szablon=(obiekt=="SZABLON");local czy_znacznik=(obiekt=="ZNACZNIK");
local wynik=SpecjalneWprowadzeniaTekstu(szablon,obiekt,kod,czy_szablon,czy_znacznik,true,
function(parametr)
parametr=mw.ustring.gsub(parametr,"\n"," ");
return "\n"..parametr.."\n ";
end,
function(nazwa,zawartosc,atrybuty)
if((zawartosc)and(nazwa))then
local poziom=stronicowyparser_rozdzialy_modul.HnNumerWprowadzeniaTekstu(nazwa,atrybuty);
zawartosc=mw.ustring.gsub(zawartosc,"\n"," ");
local poziom_rowna=mw.ustring.rep("=",poziom);
return "\n"..poziom_rowna..zawartosc..poziom_rowna.."\n ";
end;
end);
if(wynik)then return wynik;end;
return nil;
end);
end;
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu);
local numeracja;
----
local KtorySzablonMaZwracacKategorieNaglowek=KtorySzablonMaZwracacKategorie and KtorySzablonMaZwracacKategorie[1] or nil;
local KtorySzablonMaZwracacKategorieTekst=KtorySzablonMaZwracacKategorie and KtorySzablonMaZwracacKategorie[2] or nil;
local CzyJestTakiProblemJakoElementTablicy=KtorySzablonMaZwracacKategorie and KtorySzablonMaZwracacKategorie[3] or nil;
----
local function SzablonNaglowkujWNaglowkuRozdzialu(szablon,obiekt,kod,powtorka,parametry_wywolania_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania)
--local nazwa_szablonu=szablonowe_modul["NazwaSzablonuWywołania"](szablon);
local jest_naglowkuj_w_tekscie_rozdzialu=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu[nazwa_szablonu_wywolania];
if(jest_naglowkuj_w_tekscie_rozdzialu)then
--local parametry_wywolania_szablonu_naglowek,nazwa_szablonu_wywolania,modyfikatory_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon,nil,nil,nil,tablica_danych_parametrow_szablonu_strony,kod);
local numeracja_aktualna=parametry_wywolania_szablonu["uchwyt"] or parametry_wywolania_szablonu[1];
----
if(numeracja_aktualna)then
local wartosc_elementu=jest_naglowkuj_w_tekscie_rozdzialu[1];
local lista_dwuelementowa=tabela_elementow_strony_kodow and stronicowyparser_zbieraniedanychstron_potrzebne_modul.WydobywanieUchwytuZeTablicyBezNumeracji(self,tabela_elementow_strony_kodow,wartosc_elementu,kod) or nil;
if(not lista_dwuelementowa)then
numeracja_aktualna=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(numeracja_aktualna,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or numeracja_aktualna;
numeracja_aktualna=html_modul.DecodeHtml(numeracja_aktualna,true);
lista_dwuelementowa={};
lista_dwuelementowa[1]=numeracja_aktualna;
else
numeracja_aktualna=lista_dwuelementowa[1];
end;
if(numeracja_aktualna~="")then
table.insert(numeracja,lista_dwuelementowa);
end;
----
if(powtorka>=1)then
if(self.tabela_listy_danych_analizy_ksiazki)then
KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu_wywolania);
end;
end;
elseif(powtorka>=1)then
KtorySzablonMaZwracacKategorieNaglowek(nil,nazwa_szablonu_wywolania);
end;
powtorka=powtorka+1;
end;
return powtorka;
end;
----
local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu;
----
local function SzablonNaglowkujWTekscieRozdzialu(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
----
local jest_naglowkuj_w_tekscie_rozdzialu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu[nazwa_szablonu];
if(jest_naglowkuj_w_tekscie_rozdzialu)then
local numeracja=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
if((numeracja)and(numeracja~=""))then
local wartosc_elementu=jest_naglowkuj_w_tekscie_rozdzialu[1];
local lista_dwuelementowa=tabela_elementow_strony_kodow and stronicowyparser_zbieraniedanychstron_potrzebne_modul.WydobywanieUchwytuZeTablicyBezNumeracji(self,tabela_elementow_strony_kodow,wartosc_elementu,kod) or nil;
if(not lista_dwuelementowa)then
numeracja=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(numeracja,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or kod_uchwytu;
numeracja=html_modul.DecodeHtml(numeracja,true);
else
numeracja=lista_dwuelementowa[1];
end;
end;
KtorySzablonMaZwracacKategorieTekst(numeracja,nazwa_szablonu);
return true;
end;
return false;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return false;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return false;
end);
end;
return false;
end;
local RefPrzypisowy=function(obiekt,kod)
return "["..((obiekt~="") and (obiekt.." ") or "")..kod.."]";
end;
local specjalne_modul=require("Module:Specjalne");
local nazwa_strony_z_naglowkami=((not tylko_naglowek)and(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "") or "");
for naglowek_tab,text_rozdzialu,poziom_rozdzialu in iterator do
local naglowek=naglowek_tab[1];
numeracja={};
if(czy_kodowanie)then
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(text_rozdzialu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
local wynik=SzablonNaglowkujWTekscieRozdzialu(szablon,obiekt,kod);
if(wynik)then break;end;
end;
end;
local powtorka=0;
local czy_szablony=nil;
local czy_indeksowanie=nil;
local function SzablonyWywolywane(szablon,obiekt,kod)
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,obiekt,kod,powtorka,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow);
local czy_naglowek=tab_naglowki[nazwa_szablonu];
local czy_link;local nazwa_link;
local function TempFunc(nazwa_szablonu)
if(not czy_link)then
czy_link=true;
local str=mw.ustring.match(nazwa_szablonu,"^Link")
nazwa_link=str and true or false;
return nazwa_link;
end;
return nazwa_link;
end;
local czy_tak_naglowki=((czy_naglowek)and(TempFunc(nazwa_szablonu)and true or false) or ((not czy_naglowek)and nil));
if((czy_tak_naglowki~=nil)and(czy_tak_naglowki==false))then
return "";
elseif((tab_szablony[nazwa_szablonu])or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu])or(tab_szablony_inne_szablony_stron_zbiorczych[nazwa_szablonu])or((czy_tak_naglowki~=nil)and(czy_tak_naglowki==true)))then
czy_szablony=true;
local nazwa_link=TempFunc(nazwa_szablonu);
if((not czy_artykul_korzystany)or(nazwa_link))then
local nazwa_link=TempFunc(nazwa_szablonu);
if(nazwa_link)then
tabela_parametrow_szablonu[2]=tabela_parametrow_szablonu[2] or nazwa_artykulu;
tabela_parametrow_szablonu[3]=tabela_parametrow_szablonu[3] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki);
end;
tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwa_przestrzeni;
tabela_parametrow_szablonu["nazwa jednostki"]=tabela_parametrow_szablonu["nazwa jednostki"] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""));
if((self)and((self.tabela_listy_danych_analizy_ksiazki)))then
local czy_link_lub_pobierz;
if(czy_tak_naglowki==nil)then
czy_link_lub_pobierz=mw.ustring.match(nazwa_szablonu,"^Link") or mw.ustring.match(nazwa_szablonu,"^Pobierz");
else
czy_link_lub_pobierz=czy_tak_naglowki or mw.ustring.match(nazwa_szablonu,"^Pobierz");
end;
if(czy_link_lub_pobierz)then
stronicowyparser_zbieraniedanychstron_potrzebne_modul.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
else
stronicowyparser_zbieraniedanychstron_potrzebne_modul.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
end;
end;
end;
local str=szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true);
return str;
elseif((tab_szablony_strona_start[nazwa_szablonu])or(tab_szablony_szablony_stron_zbiorczych[nazwa_szablonu]))then
return "";
elseif(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu])then
local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
if(wynik)then return wynik;end;
elseif((czy_indeksowanie)and(tab_szablony_indeksowania[nazwa_szablonu]))then
return nil,true;
end;
return szablon;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return szablon;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return szablon;
end);
end;
--naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny);
--naglowek=mw.ustring.gsub(naglowek,"<ref>.-</ref>","");
--naglowek=Korekta(naglowek);
---naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end)
local nazwa_rozdzialu_w_artykule;
if(not czy_kodowanie)then
nazwa_rozdzialu_w_artykule,naglowek=specjalne_modul["PrzetwórzNagłówek"](naglowek,true,false);
else
local function SzablonyWywolywaneOgolny(naglowek)
local naglowek,Znaczniki,SzablonyStylowe,ZnakiSpecjalne=specjalne_modul["WydzielZwykłyTekst"](
{
tekst=naglowek,
["nagłówek"]=true,
nieklasycznie=true,
kodowanie=false,
["tablica kodowania"]=tablica_analizy_obiektow_strony_dany_modul,
["nazwa modułu"]=nazwa_modulu_aktualna_czy_biezaca,
},
function(szablon,obiekt,kod)
local szablon,wynik=SzablonyWywolywane(szablon,obiekt,kod);
return szablon,wynik;
end,
function(szablon,obiekt,kod)
return czy_indeksowanie;
end);
return naglowek,Znaczniki,SzablonyStylowe,ZnakiSpecjalne;
end;
czy_indeksowanie=true;
local Znaczniki;local SzablonyStylowe;local ZnakiSpecjalne;
naglowek,Znaczniki,SzablonyStylowe,ZnakiSpecjalne=SzablonyWywolywaneOgolny(naglowek);
nazwa_rozdzialu_w_artykule=naglowek;
naglowek=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(naglowek,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(tab_szablony_indeksowania[nazwa_szablonu])then return "";end;
end);
elseif(obiekt=="ZNACZNIK")then
szablon=Znaczniki(szablon,"li");
szablon=Znaczniki(szablon,"ol");
szablon=Znaczniki(szablon,"ul");
return szablon;
end;
end);
czy_indeksowanie=false;
nazwa_rozdzialu_w_artykule=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(nazwa_rozdzialu_w_artykule,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="ATRYBUTY")then
return nil,true;
elseif(obiekt=="SZABLON")then
szablon=SzablonyWywolywaneOgolny(szablon);
return szablon;
end;
--szablon=Korekta(szablon);
--szablon=specjalne_modul["UsuńSzablonyStylów"](szablon);
--szablon=specjalne_modul["UsuńZnakiSpecjalne"](szablon);
return szablon;
end);
nazwa_rozdzialu_w_artykule=SzablonyStylowe(nazwa_rozdzialu_w_artykule);
nazwa_rozdzialu_w_artykule=ZnakiSpecjalne(nazwa_rozdzialu_w_artykule);
nazwa_rozdzialu_w_artykule=Znaczniki(nazwa_rozdzialu_w_artykule);
if(not czy_szablony)then
nazwa_rozdzialu_w_artykule=html_modul.DecodeKoduHTMLZnaku(nazwa_rozdzialu_w_artykule);
nazwa_rozdzialu_w_artykule=html_modul.EncodeSpecjalneZnakiHtml(nazwa_rozdzialu_w_artykule);
end;
end;
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[_%s]+"," ");
naglowek=mw.ustring.gsub(naglowek,szablonowe_modul.NormaWzoruKodowaniaTekstu("REF(%a*)","(%d+)"),function(obiekt,kod)
return "<sup>"..RefPrzypisowy(obiekt,kod).."</sup>";
end);
naglowek=mw.ustring.gsub(naglowek,szablonowe_modul.NormaWzoruKodowaniaTekstu("POSTMATH"),function(kod)
if(not wzory_zamiast_kodow)then
return szablonowe_modul[((nazwa_strony)and(nazwa_strony=="")) and "NormaKoduKodowaniaTekstu" or "NormaKoduZakodowanegoWikiTekstu"]("postMath",(mw.ustring.rep("0",math.max(8-#kod,0)))..kod);
elseif(not czy_artykul_korzystany)then
if(tablica_obiektow_strony_danych_kodow_specjalnych_modul)then
if(tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"])then
local kod=tonumber(kod);
local szablon=tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][kod];
if(szablon)then
szablon=frame:preprocess(szablon);
return szablon;
end;
end;
end
end;
return szablonowe_modul[czy_artykul_korzystany and "NormaKoduKodowaniaTekstu" or "NormaKoduZakodowanegoWikiTekstu"]("postMath",(mw.ustring.rep("0",math.max(8-#kod,0)))..kod);
end);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,szablonowe_modul.NormaWzoruKodowaniaTekstu("REF(%a*)"),function(obiekt,kod)
return RefPrzypisowy(obiekt,kod);
end);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,szablonowe_modul.NormaWzoruKodowaniaTekstu("POSTMATH"),function(kod)
kod=liczby_modul.LiczbaSzesnastkowaKodyBazySzablonowe(kod);
return szablonowe_modul.NormaKoduZakodowanegoHtmlTekstu("postMath",kod);
end);
--nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";");
local numer_tego_samego_naglowka=1;
--local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule);
local numer_tego_samego_naglowka=1;
for s=1,#tablica_powtarzajacych_sie_elementow,1 do
local element=tablica_powtarzajacych_sie_elementow[s];
if(element==nazwa_rozdzialu_w_artykule)then
numer_tego_samego_naglowka=numer_tego_samego_naglowka+1;
end;
end;
if(numer_tego_samego_naglowka==1)then
elementy_linku={nazwa_rozdzialu_w_artykule,naglowek};
else
elementy_linku={nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek};
end;
if((obiekty)and(numeracja))then
for _,value_numeracja in ipairs(numeracja)do
obiekty[#obiekty+1]={value_numeracja,{nazwa_strony_z_naglowkami,elementy_linku[1], elementy_linku[2]}};
end;
end;
if((poziom_rozdzialu or 0)>0)then
local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu);
tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule;
if(tablica_spisu_tresci==nil)then
tablica_spisu_tresci={};
tablica_spisu_tresci.nazwa_strony=nazwa_strony_z_naglowkami;
end;
tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony};
end;
end;
if(czy_kodowanie)then
if(czy_artykul_korzystany)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not CzyJestTakiProblemJakoElementTablicy())then
local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+");
if((linia_poczatkowa)and((mw.ustring.match(linia_poczatkowa,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*\n*"))
or(mw.ustring.match(linia_poczatkowa,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$*")))
)then
return tablica_spisu_tresci;
end;
local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=[^\n]*[^%s=][^\n]*=[^%S\n]*\n")
or mw.ustring.match(tekst_artykulu,"^(.-)\n=[^\n]*[^%s=][^\n]*=[^%S\n]*$")
or tekst_artykulu;
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_zerowy,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
local wynik=SzablonNaglowkujWTekscieRozdzialu(szablon,obiekt,kod);
if(wynik)then break;end;
end;
end;
end;
end;
return tablica_spisu_tresci;
end;
return p;
1g2xv18pepwi0w0361owac6np9wdgex
557816
557809
2026-09-28T15:36:04Z
Persino
2851
557816
Scribunto
text/plain
local p={};
function p.PobieranieInformacjiRamkiRozpatrywanejStrony(self)
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi(self)
self.tabela_listy_danych_analizy_ksiazki={};
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron={};
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
self.tabela_listy_danych_analizy_ksiazki.problemy=nil;
self.tabela_listy_danych_analizy_ksiazki.licencja={};
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local function DaneNazw(pelna_nazwa_strony)
local tabela_nazw={};
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_strony,tabela_nazw);
local nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](pelna_nazwa_strony,tabela_nazw);
local nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](pelna_nazwa_strony,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](pelna_nazwa_strony,tabela_nazw);
local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_strony,tabela_nazw);
return nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu;
end;
local strona_aktualna=ksiazkowe_modul["PełnaNazwaArtykułu"]();
local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=DaneNazw(strona_aktualna);
local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")
..((nazwa_przestrzeni_ksiazki~="")and(nazwa_przestrzeni_ksiazki.."/") or "")
..nazwa_ksiazki;
local pelna_nazwa_ksiazki_ustawienia="Szablon:Podręcznik/Ustawienia/"..pelna_nazwa_ksiazki;
local techniczne_modul=require("Module:Techniczne");
local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki_ustawienia.."/config",tekst=true,};
if(ile>0)then
local frame=mw.getCurrentFrame();
local szablonowe_modul=require("Module:Szablonowe");
local nazwa_szablonu=szablonowe_modul.NazwaSzablonu(pelna_nazwa_ksiazki_ustawienia);
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local pudelko_modul=require("Module:Pudełko");
local czy_strona_niepoprawna=pudelko_modul["CzyNiepoprawnaNazwa"](strona);
if(not czy_strona_niepoprawna)then
local html_modul=require("Module:Html");
strona=html_modul.DecodeHtml(strona,true);
strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=strona_aktualna,};
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,tekst=true,};
if(ile>0)then
strona=ksiazkowe_modul["PełnaNazwaArtykułu"](strona);
if(strona~=strona_aktualna)then
local aktualna_nazwa_przestrzeni,aktualna_nazwa_przestrzeni_ksiazki,aktualna_nazwa_ksiazki,aktualna_nazwa_artykulu=nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu;
nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=DaneNazw(strona);
--local aktualna_nazwa_przestrzeni,aktualna_nazwa_przestrzeni_ksiazki,aktualna_nazwa_ksiazki,aktualna_nazwa_artykulu=DaneNazw(strona_aktualna);
self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni=aktualna_nazwa_przestrzeni;
self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki=aktualna_nazwa_przestrzeni_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki=aktualna_nazwa_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu=aktualna_nazwa_artykulu;
if((aktualna_nazwa_przestrzeni~=nazwa_przestrzeni)
or(aktualna_nazwa_przestrzeni_ksiazki~=nazwa_przestrzeni_ksiazki)
or(aktualna_nazwa_ksiazki~=nazwa_ksiazki)
or(aktualna_nazwa_artykulu~=nazwa_artykulu)
)then
local zastepcza=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępcza",}};
local parametry_modul=require("Module:Parametry");
self.tabela_listy_danych_analizy_ksiazki.alternatywna=parametry_modul.CzyTak(zastepcza);
if(not self.tabela_listy_danych_analizy_ksiazki.alternatywna)then
self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca=true;
end;
end;
end;
end;
end;
end;
end;
local tablica_zmiennych={};
tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2={};
tablica_zmiennych.linkobiekt={};
local stronicowyparser_zbieraniedanychstron_modul=require("Module:StronicowyParser/ZbieranieDanychStron");
local tabela_listy_danych_analizy_ksiazki=stronicowyparser_zbieraniedanychstron_modul.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, true,tablica_zmiennych);
local parametry_modul=require("Module:Parametry");
if(parametry_modul.TypeTable(tabela_listy_danych_analizy_ksiazki))then
local stronicowyparser_numeracjaobiektowstron_modul=require("Module:StronicowyParser/NumeracjaObiektówStron");
stronicowyparser_numeracjaobiektowstron_modul.PrzetwarzanieZebranychInformacjiDanejKorzystanejStrony(self,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
end;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.SpisRzeczyWedlePodanegoTekstu(self,tekst_artykulu,nazwa_strony,czy_artykul_korzystany, tylko_naglowek,obiekty,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_obiektow_strony_danych_kodow_specjalnych_modul,KtorySzablonMaZwracacKategorie,wzory_zamiast_kodow,tabela_elementow_strony_kodow)
----
local czy_kodowanie=((nazwa_modulu_aktualna_czy_biezaca)or(tablica_analizy_obiektow_strony_dany_modul));
----
if(not nazwa_modulu_aktualna_czy_biezaca)then
if czy_artykul_korzystany then
local nazwa_przestrzeni_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni or self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_przestrzeni_ksiazki_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki or self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
local nazwa_ksiazki_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki or self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
local nazwa_artykulu_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu or self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu;
local nazwy_modul=require("Module:Nazwy");
nazwa_modulu_aktualna_czy_biezaca=nazwy_modul["NazwaModułu"](nazwa_przestrzeni_aktualna_czy_biezaca,nazwa_przestrzeni_ksiazki_aktualna_czy_biezaca,nazwa_ksiazki_aktualna_czy_biezaca,nazwa_artykulu_aktualna_czy_biezaca);
else
nazwa_modulu_aktualna_czy_biezaca=nazwa_strony;
end;
end;
local html_modul=require("Module:Html");
nazwa_strony=html_modul.EncodeId(nazwa_strony);
-----
local tablica_spisu_tresci=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local stronicowyparser_zbieraniedanychstron_potrzebne_modul=require("Module:StronicowyParser/ZbieranieDanychStron/Potrzebne");
local szablonowe_modul=require("Module:Szablonowe");
local liczby_modul=require("Module:Liczby");
local nazwa_modulu_aktualna_czy_biezaca_szablonowa=nazwa_modulu_aktualna_czy_biezaca_szablonowa or szablonowe_modul["SzablonowaKompletnaNazwaStrony"](nazwa_modulu_aktualna_czy_biezaca);
local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local tablica_powtarzajacych_sie_elementow={};
local elementy_linku=nil;
local frame=mw.getCurrentFrame();
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local html_modul=require("Module:Html");
local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local tab_szablony=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_kontenerowe;
local tab_naglowki=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_wprowadzenia_tekstu;
----
local tab_szablony_stronicowe_niekontenerowe=stronicowyparser_obiekty_modul.szablony_stronicowe_niekontenerowe;
----
local tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego=stronicowyparser_obiekty_modul.szablony_stronicowe_kontenerowe_formatowania_wzorowego;
local tab_szablony_szablony_stron_zbiorczych=stronicowyparser_obiekty_modul.szablony_stron_zbiorczych;
local tab_szablony_inne_szablony_stron_zbiorczych=stronicowyparser_obiekty_modul.inne_szablony_stron_zbiorczych;
local tab_szablony_strona_start=stronicowyparser_obiekty_modul.szablony_stronicowe_formatowania_tekstu;
----
local tab_szablony_indeksowania=stronicowyparser_obiekty_modul.szablony_indeksowania;
---
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
----
if(czy_kodowanie)then
local szablony_sztucznego_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_sztucznego_wprowadzenia_tekstu;
local szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu;
local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu;
local SpecjalneWprowadzeniaTekstu=function(szablon,obiekt,kod,czy_szablon,czy_znacznik,czy_liczyc,funkcja1,funkcja2)
if(czy_szablon)then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local numer_parametru=szablony_sztucznego_wprowadzenia_tekstu[nazwa_szablonu];
if(numer_parametru)then
local parametr=tabela_parametrow_szablonu[numer_parametru];
if(parametr)then
local naglowek,poziom=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(parametr);
if(naglowek)then
return funkcja1(parametr);
end;
end;
else
local tabela_nazw={};
local function ParametrNR(numer)
return stronicowyparser_potrzebne_modul.SpisRzeczySzablon(nazwa_szablonu,numer,tabela_parametrow_szablonu,tabela_nazw);
end;
local parametr=ParametrNR(1);
if(parametr)then
if(czy_liczyc)then
local ile_poziom=tonumber(ParametrNR(5)) or 6;
ile_poziom=(ile_poziom>0)and ile_poziom or 1;
ile_poziom=(ile_poziom<=6) and ile_poziom or 6;
local poziom=mw.ustring.rep("=",ile_poziom);
local adres_ksiazki=ParametrNR(2);
local nazwa_modulu_aktualna_czy_biezaca_strony=adres_ksiazki and ParametrNR(2) or nazwa_modulu_aktualna_czy_biezaca;
local adres=nazwa_modulu_aktualna_czy_biezaca_strony..((parametr~="")and ("/"..parametr)or "");
adres=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(adres,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or adres;
adres=html_modul.DecodeHtml(adres,true);
parametr=ParametrNR(3) or parametr;
local dodatek=ParametrNR(4);
parametr=parametr..((dodatek) and (" "..dodatek) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=adres,tekst=true,};
local ObiektKodNumer=function(szablon,obiekt)
local tablica_analizy_obiektow_strony_dany_modul_numer=tablica_analizy_obiektow_strony_dany_modul[obiekt];
local kod_numer=1;
for name,_ in pairs(tablica_analizy_obiektow_strony_dany_modul_numer)do
kod_numer=math.max(kod_numer,name);
end;
kod_numer=kod_numer+1;
tablica_analizy_obiektow_strony_dany_modul_numer[kod_numer]=szablon;
local kod_szablonowe=szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod_numer);
return kod_szablonowe;
end;
if(ile>0)then
local parametr=poziom..parametr..poziom;
return funkcja1(parametr);
else
local szablon="<span style=\"color:red;\">"..parametr.."</span>";
local kod_parametr=ObiektKodNumer(szablon,"ZNACZNIK");
local parametr=poziom..kod_parametr..poziom;
return funkcja1(parametr);
end;
else
return funkcja1(parametr);
end;
end;
end;
end);
elseif(czy_znacznik)then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if((zawartosc)and(nazwa))then
if(znaczniki_wprowadzenia_tekstu[nazwa])then
return funkcja2(nazwa,zawartosc,atrybuty);
end;
end;
end;
end;
tekst_artykulu=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(tekst_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,nazwa_modulu_aktualna_czy_biezaca,
function(szablon,obiekt,kod)
local czy_szablon=(obiekt=="SZABLON");local czy_znacznik=(obiekt=="ZNACZNIK");local czy_wikitabelka=(obiekt=="WIKITABELA");local czy_zmienna=(obiekt=="ZMIENNA");
if((czy_szablon)or(czy_znacznik)or(czy_wikitabelka)or(czy_zmienna))then
local wynik=SpecjalneWprowadzeniaTekstu(szablon,obiekt,kod,czy_szablon,czy_znacznik,false,function()return true;end,function()return true;end);
if(wynik)then return true,nil,nil,true;end;
local rozdzial=mw.ustring.match(szablon,"\n(=[^\n]*[^%s=][^\n]*=)[^%S\n]*\n");
if(rozdzial)then
local naglowek,poziom=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial);
if(naglowek)then
return true,nil,nil,true;
end;
end;
end;
end,
function(szablon,obiekt,kod)
local czy_szablon=(obiekt=="SZABLON");local czy_znacznik=(obiekt=="ZNACZNIK");
local wynik=SpecjalneWprowadzeniaTekstu(szablon,obiekt,kod,czy_szablon,czy_znacznik,true,
function(parametr)
parametr=mw.ustring.gsub(parametr,"\n"," ");
return "\n"..parametr.."\n ";
end,
function(nazwa,zawartosc,atrybuty)
if((zawartosc)and(nazwa))then
local poziom=stronicowyparser_rozdzialy_modul.HnNumerWprowadzeniaTekstu(nazwa,atrybuty);
zawartosc=mw.ustring.gsub(zawartosc,"\n"," ");
local poziom_rowna=mw.ustring.rep("=",poziom);
return "\n"..poziom_rowna..zawartosc..poziom_rowna.."\n ";
end;
end);
if(wynik)then return wynik;end;
return nil;
end);
end;
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu);
local numeracja;
----
local KtorySzablonMaZwracacKategorieNaglowek=KtorySzablonMaZwracacKategorie and KtorySzablonMaZwracacKategorie[1] or nil;
local KtorySzablonMaZwracacKategorieTekst=KtorySzablonMaZwracacKategorie and KtorySzablonMaZwracacKategorie[2] or nil;
local CzyJestTakiProblemJakoElementTablicy=KtorySzablonMaZwracacKategorie and KtorySzablonMaZwracacKategorie[3] or nil;
----
local function SzablonNaglowkujWNaglowkuRozdzialu(szablon,obiekt,kod,powtorka,parametry_wywolania_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania)
--local nazwa_szablonu=szablonowe_modul["NazwaSzablonuWywołania"](szablon);
local jest_naglowkuj_w_tekscie_rozdzialu=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu[nazwa_szablonu_wywolania];
if(jest_naglowkuj_w_tekscie_rozdzialu)then
--local parametry_wywolania_szablonu_naglowek,nazwa_szablonu_wywolania,modyfikatory_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon,nil,nil,nil,tablica_danych_parametrow_szablonu_strony,kod);
local numeracja_aktualna=parametry_wywolania_szablonu["uchwyt"] or parametry_wywolania_szablonu[1];
----
if(numeracja_aktualna)then
local wartosc_elementu=jest_naglowkuj_w_tekscie_rozdzialu[1];
local lista_dwuelementowa=tabela_elementow_strony_kodow and stronicowyparser_zbieraniedanychstron_potrzebne_modul.WydobywanieUchwytuZeTablicyBezNumeracji(self,tabela_elementow_strony_kodow,wartosc_elementu,kod) or nil;
if(not lista_dwuelementowa)then
numeracja_aktualna=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(numeracja_aktualna,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or numeracja_aktualna;
numeracja_aktualna=html_modul.DecodeHtml(numeracja_aktualna,true);
lista_dwuelementowa={};
lista_dwuelementowa[1]=numeracja_aktualna;
else
numeracja_aktualna=lista_dwuelementowa[1];
end;
if(numeracja_aktualna~="")then
table.insert(numeracja,lista_dwuelementowa);
end;
----
if(powtorka>=1)then
if(self.tabela_listy_danych_analizy_ksiazki)then
KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu_wywolania);
end;
end;
elseif(powtorka>=1)then
KtorySzablonMaZwracacKategorieNaglowek(nil,nazwa_szablonu_wywolania);
end;
powtorka=powtorka+1;
end;
return powtorka;
end;
----
local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu;
----
local function SzablonNaglowkujWTekscieRozdzialu(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
----
local jest_naglowkuj_w_tekscie_rozdzialu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu[nazwa_szablonu];
if(jest_naglowkuj_w_tekscie_rozdzialu)then
local numeracja=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
if((numeracja)and(numeracja~=""))then
local wartosc_elementu=jest_naglowkuj_w_tekscie_rozdzialu[1];
local lista_dwuelementowa=tabela_elementow_strony_kodow and stronicowyparser_zbieraniedanychstron_potrzebne_modul.WydobywanieUchwytuZeTablicyBezNumeracji(self,tabela_elementow_strony_kodow,wartosc_elementu,kod) or nil;
if(not lista_dwuelementowa)then
numeracja=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(numeracja,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or kod_uchwytu;
numeracja=html_modul.DecodeHtml(numeracja,true);
else
numeracja=lista_dwuelementowa[1];
end;
end;
KtorySzablonMaZwracacKategorieTekst(numeracja,nazwa_szablonu);
return true;
end;
return false;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return false;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return false;
end);
end;
return false;
end;
local RefPrzypisowy=function(obiekt,kod)
return "["..((obiekt~="") and (obiekt.." ") or "")..kod.."]";
end;
local specjalne_modul=require("Module:Specjalne");
local nazwa_strony_z_naglowkami=((not tylko_naglowek)and(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "") or "");
for naglowek_tab,text_rozdzialu,poziom_rozdzialu in iterator do
local naglowek=naglowek_tab[1];
numeracja={};
if(czy_kodowanie)then
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(text_rozdzialu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
local wynik=SzablonNaglowkujWTekscieRozdzialu(szablon,obiekt,kod);
if(wynik)then break;end;
end;
end;
local powtorka=0;
local czy_szablony=nil;
local czy_indeksowanie=nil;
local function SzablonyWywolywane(szablon,obiekt,kod)
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,obiekt,kod,powtorka,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow);
local czy_naglowek=tab_naglowki[nazwa_szablonu];
local czy_link;local nazwa_link;
local function TempFunc(nazwa_szablonu)
if(not czy_link)then
czy_link=true;
local str=mw.ustring.match(nazwa_szablonu,"^Link")
nazwa_link=str and true or false;
return nazwa_link;
end;
return nazwa_link;
end;
local czy_tak_naglowki=((czy_naglowek)and(TempFunc(nazwa_szablonu)and true or false) or ((not czy_naglowek)and nil));
if((czy_tak_naglowki~=nil)and(czy_tak_naglowki==false))then
return "";
elseif((tab_szablony[nazwa_szablonu])or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu])or(tab_szablony_inne_szablony_stron_zbiorczych[nazwa_szablonu])or((czy_tak_naglowki~=nil)and(czy_tak_naglowki==true)))then
czy_szablony=true;
local nazwa_link=TempFunc(nazwa_szablonu);
if((not czy_artykul_korzystany)or(nazwa_link))then
local nazwa_link=TempFunc(nazwa_szablonu);
if(nazwa_link)then
tabela_parametrow_szablonu[2]=tabela_parametrow_szablonu[2] or nazwa_artykulu;
tabela_parametrow_szablonu[3]=tabela_parametrow_szablonu[3] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki);
end;
tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwa_przestrzeni;
tabela_parametrow_szablonu["nazwa jednostki"]=tabela_parametrow_szablonu["nazwa jednostki"] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or ""));
if((self)and((self.tabela_listy_danych_analizy_ksiazki)))then
local czy_link_lub_pobierz;
if(czy_tak_naglowki==nil)then
czy_link_lub_pobierz=mw.ustring.match(nazwa_szablonu,"^Link") or mw.ustring.match(nazwa_szablonu,"^Pobierz");
else
czy_link_lub_pobierz=czy_tak_naglowki or mw.ustring.match(nazwa_szablonu,"^Pobierz");
end;
if(czy_link_lub_pobierz)then
stronicowyparser_zbieraniedanychstron_potrzebne_modul.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
else
stronicowyparser_zbieraniedanychstron_potrzebne_modul.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
end;
end;
end;
local str=szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true);
return str;
elseif((tab_szablony_strona_start[nazwa_szablonu])or(tab_szablony_szablony_stron_zbiorczych[nazwa_szablonu]))then
return "";
elseif(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu])then
local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
if(wynik)then return wynik;end;
elseif((czy_indeksowanie)and(tab_szablony_indeksowania[nazwa_szablonu]))then
return nil,true;
end;
return szablon;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return szablon;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return szablon;
end);
end;
--naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny);
--naglowek=mw.ustring.gsub(naglowek,"<ref>.-</ref>","");
--naglowek=Korekta(naglowek);
---naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end)
local nazwa_rozdzialu_w_artykule;
if(not czy_kodowanie)then
nazwa_rozdzialu_w_artykule,naglowek=specjalne_modul["PrzetwórzNagłówek"](naglowek,true,false);
else
local function SzablonyWywolywaneOgolny(naglowek)
local naglowek,Znaczniki,SzablonyStylowe,ZnakiSpecjalne=specjalne_modul["WydzielZwykłyTekst"](
{
tekst=naglowek,
["nagłówek"]=true,
nieklasycznie=true,
kodowanie=false,
["tablica kodowania"]=tablica_analizy_obiektow_strony_dany_modul,
["nazwa modułu"]=nazwa_modulu_aktualna_czy_biezaca,
},
function(szablon,obiekt,kod)
local szablon,wynik=SzablonyWywolywane(szablon,obiekt,kod);
return szablon,wynik;
end,
function(szablon,obiekt,kod)
return czy_indeksowanie;
end);
return naglowek,Znaczniki,SzablonyStylowe,ZnakiSpecjalne;
end;
czy_indeksowanie=true;
local Znaczniki;local SzablonyStylowe;local ZnakiSpecjalne;
naglowek,Znaczniki,SzablonyStylowe,ZnakiSpecjalne=SzablonyWywolywaneOgolny(naglowek);
nazwa_rozdzialu_w_artykule=naglowek;
naglowek=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(naglowek,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(tab_szablony_indeksowania[nazwa_szablonu])then return "";end;
end);
elseif(obiekt=="ZNACZNIK")then
szablon=Znaczniki(szablon,"li");
szablon=Znaczniki(szablon,"ol");
szablon=Znaczniki(szablon,"ul");
return szablon;
end;
end);
czy_indeksowanie=false;
nazwa_rozdzialu_w_artykule=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(nazwa_rozdzialu_w_artykule,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="ATRYBUTY")then
return nil,true;
elseif(obiekt=="SZABLON")then
szablon=SzablonyWywolywaneOgolny(szablon);
return szablon;
end;
--szablon=Korekta(szablon);
--szablon=specjalne_modul["UsuńSzablonyStylów"](szablon);
--szablon=specjalne_modul["UsuńZnakiSpecjalne"](szablon);
return szablon;
end);
nazwa_rozdzialu_w_artykule=SzablonyStylowe(nazwa_rozdzialu_w_artykule);
nazwa_rozdzialu_w_artykule=ZnakiSpecjalne(nazwa_rozdzialu_w_artykule);
nazwa_rozdzialu_w_artykule=Znaczniki(nazwa_rozdzialu_w_artykule);
if(not czy_szablony)then
nazwa_rozdzialu_w_artykule=html_modul.DecodeKoduHTMLZnaku(nazwa_rozdzialu_w_artykule);
nazwa_rozdzialu_w_artykule=html_modul.EncodeSpecjalneZnakiHtml(nazwa_rozdzialu_w_artykule);
end;
end;
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[_%s]+"," ");
naglowek=mw.ustring.gsub(naglowek,szablonowe_modul.NormaWzoruKodowaniaTekstu("REF(%a*)","(%d+)"),function(obiekt,kod)
return "<sup>"..RefPrzypisowy(obiekt,kod).."</sup>";
end);
naglowek=mw.ustring.gsub(naglowek,szablonowe_modul.NormaWzoruKodowaniaTekstu("POSTMATH"),function(kod)
if(not wzory_zamiast_kodow)then
return szablonowe_modul[((nazwa_strony)and(nazwa_strony=="")) and "NormaKoduKodowaniaTekstu" or "NormaKoduZakodowanegoWikiTekstu"]("postMath",(mw.ustring.rep("0",math.max(8-#kod,0)))..kod);
elseif(not czy_artykul_korzystany)then
if(tablica_obiektow_strony_danych_kodow_specjalnych_modul)then
if(tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"])then
local kod=tonumber(kod);
local szablon=tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][kod];
if(szablon)then
szablon=frame:preprocess(szablon);
return szablon;
end;
end;
end
end;
return szablonowe_modul[czy_artykul_korzystany and "NormaKoduKodowaniaTekstu" or "NormaKoduZakodowanegoWikiTekstu"]("postMath",(mw.ustring.rep("0",math.max(8-#kod,0)))..kod);
end);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,szablonowe_modul.NormaWzoruKodowaniaTekstu("REF(%a*)"),function(obiekt,kod)
return RefPrzypisowy(obiekt,kod);
end);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,szablonowe_modul.NormaWzoruKodowaniaTekstu("POSTMATH"),function(kod)
kod=liczby_modul.LiczbaSzesnastkowaKodyBazySzablonowe(kod);
return szablonowe_modul.NormaKoduZakodowanegoHtmlTekstu("postMath",kod);
end);
--nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";");
local numer_tego_samego_naglowka=1;
--local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule);
local numer_tego_samego_naglowka=1;
for s=1,#tablica_powtarzajacych_sie_elementow,1 do
local element=tablica_powtarzajacych_sie_elementow[s];
if(element==nazwa_rozdzialu_w_artykule)then
numer_tego_samego_naglowka=numer_tego_samego_naglowka+1;
end;
end;
if(numer_tego_samego_naglowka==1)then
elementy_linku={nazwa_rozdzialu_w_artykule,naglowek};
else
elementy_linku={nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek};
end;
if((obiekty)and(numeracja))then
for _,value_numeracja in ipairs(numeracja)do
obiekty[#obiekty+1]={value_numeracja,{nazwa_strony_z_naglowkami,elementy_linku[1], elementy_linku[2]}};
end;
end;
if((poziom_rozdzialu or 0)>0)then
local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu);
tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule;
if(tablica_spisu_tresci==nil)then
tablica_spisu_tresci={};
tablica_spisu_tresci.nazwa_strony=nazwa_strony_z_naglowkami;
end;
tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony};
end;
end;
if(czy_kodowanie)then
if(czy_artykul_korzystany)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not CzyJestTakiProblemJakoElementTablicy())then
local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+");
if((linia_poczatkowa)and((mw.ustring.match(linia_poczatkowa,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*\n*"))
or(mw.ustring.match(linia_poczatkowa,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$*")))
)then
return tablica_spisu_tresci;
end;
local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=[^\n]*[^%s=][^\n]*=[^%S\n]*\n")
or mw.ustring.match(tekst_artykulu,"^(.-)\n=[^\n]*[^%s=][^\n]*=[^%S\n]*$")
or tekst_artykulu;
local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_zerowy,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul);
for szablon,obiekt,kod in iterator do
local wynik=SzablonNaglowkujWTekscieRozdzialu(szablon,obiekt,kod);
if(wynik)then break;end;
end;
end;
end;
end;
return tablica_spisu_tresci;
end;
return p;
7oahkknt8vv5u0vn7ev4chlxm61y34p
Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Pan Tadeusz. Księga XII
0
62652
557933
528971
2026-09-29T07:10:56Z
~2026-52382-89
38907
/* Krótkie streszczenie */
557933
wikitext
text/x-wiki
{{wikiźródła|Pan Tadeusz (wyd. 1834)/Księga dwunasta|księgi XII Pana Tadeusza (w pisowni oryginalnej)}}
== Krótkie streszczenie ==
W zamku Horeszków trwa wielk uczta z okazji przybycia wojsk napoleońskich oraz zaręczyn trzech par: Tadeusza i Zosi, Asesora i Tekli Hreczeszanki oraz Rejenta i Telimeny. Nad porządkiem w sali czuwa Wojski, który usadza gości zgodnie z rangą i obyczajem. Na zamku podawane są kolejne dania, a Wojski opowiada przy okazji historię obrazków na porcelanowej zastawie (sceny z obrad polskiego sejmu).
Tymczasem Sędzia wychodzi na dziedziniec, gdzie osobno bawią się chłopi. Zgodnie ze starym zwyczajem służą im przy stole nowi dziedzice – Tadeusz i Zosia. To podkreśla ich więź z poddanymi.
Do Soplicowa przybywa Maciej Dobrzyński – Kurek na kościele, na czele tej samej szlachty zaściankowej, która brała udział w zajazdach. Sędzia serdecznie go wita i zaprasza na biesiadę. Generał Dąbrowski rozpoznaje w Maćku dawnego żołnierza Kościuszki. Interesuje się też słynnym „Scyzorykiem”, więc zjawia się Gerwazy, pokazuje mu swój rapier i przekazuje go generałowi Kniaziewiczowi.
Dąbrowski dziwi się, że Maciej nie cieszy się jak inni. Ten wyjaśnia, że Polacy nie powinni ślepo liczyć na Napoleona, bo Polska potrzebuje przede wszystkim własnego wodza i własnego wojska. Młodzież oburza się jego sceptycyzmem, ale Sędzia przerywa spór, ogłaszając wejście ostatniej pary narzeczonych.
Pojawiają się Rejent i Telimena. On ubrany jest według najnowszej mody francuskiej – taki strój wymogła na nim Telimena w intercyzie. Widząc to, Maciej oburza się na „zniewieściały” ubiór, wsiada na konia i wraca do swojego zaścianka. Oburzony jest też Hrabia, który ma za złe Telimenie, że wychodzi za mąż za Rejenta, mimo że on nosił przy mundurze jej wstążkę jako znak wierności. Gdy Telimena pyta go wprost, czy sam chce stanąć z nią do ślubu, Hrabia nie potrafi się zdecydować i w końcu z rezygnacją odchodzi, kierując uwagę ku Podkomorzance.
W tym czasie Tadeusz rozmawia z Zosią o ważnej sprawie: chce nadać wolność chłopom w Soplicowie – znieść pańszczyznę i oddać im ziemię w dzierżawę. Podkreśla, że walczą o wolność ojczyzny, więc i włościanie powinni być wolni. Wie jednak, że część majątku należy do Zosi, dlatego pyta ją o zdanie. Zosia zgadza się bez wahania: zapowiada, że nauczy się gospodarowania, a najważniejsze jest dla niej dobro ludzi.
Gerwazy sprzeciwia się – proponuje raczej nadać chłopom szlachectwo i herb Horeszków, ale młodzi pozostają przy swoim. Na prośbę Sędziego ksiądz pleban ogłasza uroczyście decyzję Tadeusza i Zosi. Chłopi z entuzjazmem wiwatują, dziękując młodym dziedzicom.
Następnie cała uwaga skupia się na Jankielu – słynnym cymbaliście. Żyd początkowo odmawia gry, lecz ulega, gdy przypomina mu o obietnicy sama Zosia (obiecał wystąpić na jej weselu). Jego koncert to muzyczna opowieść o losach Polski: radosny motyw Konstytucji 3 maja, nagły zgrzyt – zdrada Targowicy, potem smutne nuty o niedoli żołnierzy, na końcu dźwięki „Mazurka Dąbrowskiego”. Słuchacze są wzruszeni, a generał Dąbrowski osobiście dziękuje Jankielowi.
Po koncercie Podkomorzy daje znak do rozpoczęcia poloneza. Prowadzi pierwszy taniec z Zosią; za nimi idą kolejne pary: Sędzia z Podkomorzyną, Hrabia, Telimena, Tadeusz i inni. Zosia w trakcie tańca szybko staje się najbardziej rozchwytywaną partnerką, ale w końcu wraca do Tadeusza. Wieczór upływa na radosnej zabawie. Jedynym smutnym jest kapral Sak Dobrzyński, skrycie zakochany w Zosi.
Na końcu narrator ujawnia się, mówiąc, że był w Soplicowie, „miód i wino pił”, co ma nadać opowieści pozór prawdziwych wspomnień. Całość kończy się obrazem zgody, radości i nadziei na lepszą przyszłość oraz przesłaniem: „Kochajmy się”.
== Plan wydarzeń ==
# Uczta na zamku – Wojski rozsadza gości, opowiada o serwisie z motywami sejmowymi.
# Sędzia wychodzi na dziedziniec, gdzie Tadeusz i Zosia usługują chłopom.
# Przybycie Maćka Dobrzyńskiego (Kurkiem na kościele) i szlachty zaściankowej.
# Rozmowa Maćka z generałem Dąbrowskim; przekazanie „Scyzoryka” Kniaziewiczowi.
# Sceptycyzm Maćka wobec ślepej wiary w Napoleona.
# Wejście trzeciej pary narzeczonych – Rejenta i Telimeny w modnym stroju.
# Oburzenie Maćka i jego wyjazd; żal Hrabiego i jego zerwanie z Telimeną.
# Rozmowa Tadeusza z Zosią o uwłaszczeniu chłopów; zgoda Zosi, sprzeciw Gerwazego.
# Ogłoszenie przez księdza plebana decyzji o nadaniu wolności włościanom – radość chłopów.
# Prośby o występ Jankiela, jego koncert o dziejach Polski (Konstytucja 3 maja, Targowica, niedola żołnierzy, Mazurek Dąbrowskiego).
# Podziękowania generała, sygnał do poloneza.
# Polonez prowadzony przez Podkomorzego i Zosię; wspólny taniec wszystkich.
# Wieczorna zabawa, smutek kaprala Saka, zakończenie opowieści słowami narratora.
== Najważniejsi bohaterowie księgi XII ==
* Tadeusz Soplica – tytułowy bohater, młody szlachcic, narzeczony Zosi; razem z nią uwłaszcza chłopów.
* Zosia Horeszkówna – wnuczka Stolnika, przyszła dziedziczka Soplicowa; zgadza się oddać włościanom ziemię.
* Sędzia Soplica – stryj Tadeusza, gospodarz Soplicowa, dba o zgodę i porządek.
* Wojski Hreczecha – mistrz obyczaju, zarządza biesiadą, opowiada, organizuje.
* Maciej Dobrzyński (Kurek na kościele) – przywódca szlachty zaściankowej, sceptyczny wobec Napoleona; zwolennik samodzielności Polski.
* Gerwazy Rębajło – dawny klucznik Horeszków; chciałby nadać chłopom szlachectwo, ale ustępuje woli młodych.
* Hrabia – dziedzic Horeszków, teraz oficer; zrywa z Telimeną, kieruje uwagę ku Podkomorzance.
* Telimena – narzeczona Rejenta, miłośniczka mody; jej związek z Hrabią definitywnie się kończy.
* Rejent i Asesor – dotychczas skłóceni, teraz już pogodzeni, należą do „par małżeńskich”.
* Tekla Hreczeszanka – narzeczona Asesora, córka Wojskiego.
* Generał Jan Henryk Dąbrowski i generał Karol Kniaziewicz – polscy dowódcy u boku Napoleona.
* Jankiel – żydowski karczmarz, wybitny cymbalista, patriota, którego koncert streszcza losy Polski.
* Kapral Sak Dobrzyński – szlachcic z rodu Dobrzyńskich, nieszczęśliwie zakochany w Zosi.
== 5. Czas i miejsce akcji ==
* Czas: lato 1812 roku, w czasie wyprawy Napoleona na Rosję.
* Miejsce:
** zamek Horeszków – miejsce uczty, koncertu Jankiela i poloneza,
** Soplicowo – dziedziniec, gdzie ogłaszane jest uwłaszczenie chłopów.
== Problematyka i znaczenie tytułu ==
* Pojednanie i zgoda – między rodami (Soplicowie–Horeszkowie), między szlachtą a chłopami, między skłóconymi sąsiadami.
* Reforma społeczna – uwłaszczenie chłopów przez Tadeusza i Zosię, odejście od dawnej pańszczyzny.
* Patriotyzm i pamięć historyczna – koncert Jankiela, który przypomina dzieje Polski od Konstytucji 3 maja po Legiony i „Mazurka Dąbrowskiego”.
* Tradycja narodowa – polonez, strój, obyczaje szlacheckie.
* Krytyka ślepej wiary w cudze potęgi – słowa Maćka o potrzebie własnego wodza i własnego wojska.
t6jozveb6g1uh3oxyyx6i32cyhsnreh
557939
557933
2026-09-29T07:17:45Z
Persino
2851
Wycofano edycję użytkownika [[Special:Contributions/~2026-52382-89|~2026-52382-89]] ([[User talk:~2026-52382-89|dyskusja]]). Autor przywróconej wersji to [[User:Igor123121|Igor123121]].
528971
wikitext
text/x-wiki
{{wikiźródła|Pan Tadeusz (wyd. 1834)/Księga dwunasta|księgi XII Pana Tadeusza (w pisowni oryginalnej)}}
== Krótkie streszczenie ==
W zamku Horeszków trwa wielka uczta z okazji przybycia wojsk napoleońskich oraz zaręczyn trzech par: Tadeusza i Zosi, Asesora i Tekli Hreczeszanki oraz Rejenta i Telimeny. Nad porządkiem w sali czuwa Wojski, który usadza gości zgodnie z rangą i obyczajem. Na zamku podawane są kolejne dania, a Wojski opowiada przy okazji historię obrazków na porcelanowej zastawie (sceny z obrad polskiego sejmu).
Tymczasem Sędzia wychodzi na dziedziniec, gdzie osobno bawią się chłopi. Zgodnie ze starym zwyczajem służą im przy stole nowi dziedzice – Tadeusz i Zosia. To podkreśla ich więź z poddanymi.
Do Soplicowa przybywa Maciej Dobrzyński – Kurek na kościele, na czele tej samej szlachty zaściankowej, która brała udział w zajazdach. Sędzia serdecznie go wita i zaprasza na biesiadę. Generał Dąbrowski rozpoznaje w Maćku dawnego żołnierza Kościuszki. Interesuje się też słynnym „Scyzorykiem”, więc zjawia się Gerwazy, pokazuje mu swój rapier i przekazuje go generałowi Kniaziewiczowi.
Dąbrowski dziwi się, że Maciej nie cieszy się jak inni. Ten wyjaśnia, że Polacy nie powinni ślepo liczyć na Napoleona, bo Polska potrzebuje przede wszystkim własnego wodza i własnego wojska. Młodzież oburza się jego sceptycyzmem, ale Sędzia przerywa spór, ogłaszając wejście ostatniej pary narzeczonych.
Pojawiają się Rejent i Telimena. On ubrany jest według najnowszej mody francuskiej – taki strój wymogła na nim Telimena w intercyzie. Widząc to, Maciej oburza się na „zniewieściały” ubiór, wsiada na konia i wraca do swojego zaścianka. Oburzony jest też Hrabia, który ma za złe Telimenie, że wychodzi za mąż za Rejenta, mimo że on nosił przy mundurze jej wstążkę jako znak wierności. Gdy Telimena pyta go wprost, czy sam chce stanąć z nią do ślubu, Hrabia nie potrafi się zdecydować i w końcu z rezygnacją odchodzi, kierując uwagę ku Podkomorzance.
W tym czasie Tadeusz rozmawia z Zosią o ważnej sprawie: chce nadać wolność chłopom w Soplicowie – znieść pańszczyznę i oddać im ziemię w dzierżawę. Podkreśla, że walczą o wolność ojczyzny, więc i włościanie powinni być wolni. Wie jednak, że część majątku należy do Zosi, dlatego pyta ją o zdanie. Zosia zgadza się bez wahania: zapowiada, że nauczy się gospodarowania, a najważniejsze jest dla niej dobro ludzi.
Gerwazy sprzeciwia się – proponuje raczej nadać chłopom szlachectwo i herb Horeszków, ale młodzi pozostają przy swoim. Na prośbę Sędziego ksiądz pleban ogłasza uroczyście decyzję Tadeusza i Zosi. Chłopi z entuzjazmem wiwatują, dziękując młodym dziedzicom.
Następnie cała uwaga skupia się na Jankielu – słynnym cymbaliście. Żyd początkowo odmawia gry, lecz ulega, gdy przypomina mu o obietnicy sama Zosia (obiecał wystąpić na jej weselu). Jego koncert to muzyczna opowieść o losach Polski: radosny motyw Konstytucji 3 maja, nagły zgrzyt – zdrada Targowicy, potem smutne nuty o niedoli żołnierzy, na końcu dźwięki „Mazurka Dąbrowskiego”. Słuchacze są wzruszeni, a generał Dąbrowski osobiście dziękuje Jankielowi.
Po koncercie Podkomorzy daje znak do rozpoczęcia poloneza. Prowadzi pierwszy taniec z Zosią; za nimi idą kolejne pary: Sędzia z Podkomorzyną, Hrabia, Telimena, Tadeusz i inni. Zosia w trakcie tańca szybko staje się najbardziej rozchwytywaną partnerką, ale w końcu wraca do Tadeusza. Wieczór upływa na radosnej zabawie. Jedynym smutnym jest kapral Sak Dobrzyński, skrycie zakochany w Zosi.
Na końcu narrator ujawnia się, mówiąc, że był w Soplicowie, „miód i wino pił”, co ma nadać opowieści pozór prawdziwych wspomnień. Całość kończy się obrazem zgody, radości i nadziei na lepszą przyszłość oraz przesłaniem: „Kochajmy się”.
== Plan wydarzeń ==
# Uczta na zamku – Wojski rozsadza gości, opowiada o serwisie z motywami sejmowymi.
# Sędzia wychodzi na dziedziniec, gdzie Tadeusz i Zosia usługują chłopom.
# Przybycie Maćka Dobrzyńskiego (Kurkiem na kościele) i szlachty zaściankowej.
# Rozmowa Maćka z generałem Dąbrowskim; przekazanie „Scyzoryka” Kniaziewiczowi.
# Sceptycyzm Maćka wobec ślepej wiary w Napoleona.
# Wejście trzeciej pary narzeczonych – Rejenta i Telimeny w modnym stroju.
# Oburzenie Maćka i jego wyjazd; żal Hrabiego i jego zerwanie z Telimeną.
# Rozmowa Tadeusza z Zosią o uwłaszczeniu chłopów; zgoda Zosi, sprzeciw Gerwazego.
# Ogłoszenie przez księdza plebana decyzji o nadaniu wolności włościanom – radość chłopów.
# Prośby o występ Jankiela, jego koncert o dziejach Polski (Konstytucja 3 maja, Targowica, niedola żołnierzy, Mazurek Dąbrowskiego).
# Podziękowania generała, sygnał do poloneza.
# Polonez prowadzony przez Podkomorzego i Zosię; wspólny taniec wszystkich.
# Wieczorna zabawa, smutek kaprala Saka, zakończenie opowieści słowami narratora.
== Najważniejsi bohaterowie księgi XII ==
* Tadeusz Soplica – tytułowy bohater, młody szlachcic, narzeczony Zosi; razem z nią uwłaszcza chłopów.
* Zosia Horeszkówna – wnuczka Stolnika, przyszła dziedziczka Soplicowa; zgadza się oddać włościanom ziemię.
* Sędzia Soplica – stryj Tadeusza, gospodarz Soplicowa, dba o zgodę i porządek.
* Wojski Hreczecha – mistrz obyczaju, zarządza biesiadą, opowiada, organizuje.
* Maciej Dobrzyński (Kurek na kościele) – przywódca szlachty zaściankowej, sceptyczny wobec Napoleona; zwolennik samodzielności Polski.
* Gerwazy Rębajło – dawny klucznik Horeszków; chciałby nadać chłopom szlachectwo, ale ustępuje woli młodych.
* Hrabia – dziedzic Horeszków, teraz oficer; zrywa z Telimeną, kieruje uwagę ku Podkomorzance.
* Telimena – narzeczona Rejenta, miłośniczka mody; jej związek z Hrabią definitywnie się kończy.
* Rejent i Asesor – dotychczas skłóceni, teraz już pogodzeni, należą do „par małżeńskich”.
* Tekla Hreczeszanka – narzeczona Asesora, córka Wojskiego.
* Generał Jan Henryk Dąbrowski i generał Karol Kniaziewicz – polscy dowódcy u boku Napoleona.
* Jankiel – żydowski karczmarz, wybitny cymbalista, patriota, którego koncert streszcza losy Polski.
* Kapral Sak Dobrzyński – szlachcic z rodu Dobrzyńskich, nieszczęśliwie zakochany w Zosi.
== 5. Czas i miejsce akcji ==
* Czas: lato 1812 roku, w czasie wyprawy Napoleona na Rosję.
* Miejsce:
** zamek Horeszków – miejsce uczty, koncertu Jankiela i poloneza,
** Soplicowo – dziedziniec, gdzie ogłaszane jest uwłaszczenie chłopów.
== Problematyka i znaczenie tytułu ==
* Pojednanie i zgoda – między rodami (Soplicowie–Horeszkowie), między szlachtą a chłopami, między skłóconymi sąsiadami.
* Reforma społeczna – uwłaszczenie chłopów przez Tadeusza i Zosię, odejście od dawnej pańszczyzny.
* Patriotyzm i pamięć historyczna – koncert Jankiela, który przypomina dzieje Polski od Konstytucji 3 maja po Legiony i „Mazurka Dąbrowskiego”.
* Tradycja narodowa – polonez, strój, obyczaje szlacheckie.
* Krytyka ślepej wiary w cudze potęgi – słowa Maćka o potrzebie własnego wodza i własnego wojska.
d5706x92q0kbor3m1g334xrr1pgopml
Wikibooks:Moduły/Html
4
63462
557815
557794
2026-09-28T14:48:58Z
Persino
2851
/* {{Śródtytuł|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml}}{{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml}} */
557815
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local html_modul=require("Module:Html");
</syntaxhighlight>
Dzięki temu poleceniu można wypisywać funkcje należącego do niego.
Moduł zawiera funkcje do posługiwania się dziesiętnymi, szesnastkowymi i literowymi kodami '''HTML''' i zamieniania ich na odpowiednie znaki, zamieniania znaków na ich kody dziesiętne, i odwrotnie. Kodowaniem i dekodowaniem '''URL''' adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łączenie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu.
== Kodowanie funkcyjne tekstu bez pewnych elementów pasujących do wzoru ==
=== {{Śródtytuł|p.KodowanieOmijanieFunkcyjne}}{{Code|p.KodowanieOmijanieFunkcyjne}} ===
Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku:
<syntaxhighlight lang="lua">
function(kod)
return "&"..kod..";";
end
</syntaxhighlight>
Gdzie {{Code|kod}} jest elementem przechwytywanym kodu '''HTML''', który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub, jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym, który w takim razie jest rozpatrywany.
Funkcja służy do omijania wszystkich kodów '''HTML''' lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|html}} | _1 = Ciąg do przetworzenia, w częściach bez parametrów omijanych.
| 2 = {{Code|normalnie}} | _2 = Czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi.
| 3 = {{Code|wzor}} | _3 = Wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany.
| 4 = {{Code|funkcja}} | _4 = Funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych.
}}
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodowanieOmijanieFunkcyjne/}}.
== Funkcje transformujące ==
=== {{Śródtytuł|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]}}{{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]}} ===
Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne '''HTML'''. Zamieniane znaki, to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NS|l=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end;
</syntaxhighlight>
Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu '''HTML'''.
}}
Funkcja wyszukuje parametry w ramce funkcji tablicy transportu, dziecka lub rodzica, lub w tablicy o kluczach parametrze o takiej samej nazwie, a nawet w zmiennej tekstowej, według: {{LinkZobaczTeż|schemat parametrów funkcji|}}, a te nazwy tych parametrów są w tabelce. Też jest tam przedstawiony schemat ważności parametrów.
Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}}
</syntaxhighlight>
Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej.
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TransformacjaKlasyZnakowejDoKoduHtmlCiągu/}}.
=== {{Śródtytuł|p["TransformacjaKoduHtmlDoZnakuCiągu"]}}{{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"]}} ===
Zamienia w tekście znaki kodów '''HTML''' dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end;
</syntaxhighlight>
Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany kodów '''HTML''', dziesiętnych i szesnastkowych, na znaki.
}}
Funkcja wyszukuje parametry w ramce funkcji tablicy transportu, dziecka lub rodzica, lub w tablicy o kluczach parametrze o takiej samej nazwie, a nawet w zmiennej tekstowej, według: {{LinkZobaczTeż|schemat parametrów funkcji|}}, a te nazwy tych parametrów są w tabelce. Też jest tam przedstawiony schemat ważności parametrów.
Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}}
</syntaxhighlight>
Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej.
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TransformacjaKoduHtmlDoZnakuCiągu/}}.
=== {{Śródtytuł|p.ZnakiSpecjalneTaguNowiki}}{{Code|p.ZnakiSpecjalneTaguNowiki}} ===
Funkcja zamienia znaki specjalne, w tekście (w zawartości pomiędzy tagami tagu {{Tag|nowiki}}, by potem je tam umieścić, by pierwotna zawartość równała się tekstowi wyświetlanemu (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}})), wikikodu na kody dziesiętne '''HTML'''. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu '''HTML''', a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{NS|k=mw|w=tak|l=tak|pk=d}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu '''HTML''', ani '''MediaWiki'''.
Funkcja potrzebuje, do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnakiSpecjalneTaguNowiki(frame)...end;
</syntaxhighlight>
Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany znaków, z zestawu znaków specjalnych wskazanych w funkcji, występujących w tagach języka '''HTML''' do dziesiętnego kodu '''HTML'''.
}}
Funkcja wyszukuje parametry w ramce funkcji tablicy transportu, dziecka lub rodzica, lub w tablicy o kluczach parametrze o takiej samej nazwie, a nawet w zmiennej tekstowej, według: {{LinkZobaczTeż|schemat parametrów funkcji|}}, a te nazwy tych parametrów są w tabelce. Też jest tam przedstawiony schemat ważności parametrów.
Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}}
</syntaxhighlight>
Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej.
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZnakiSpecjalneTaguNowiki/}}.
=== {{Śródtytuł|p.ZnakiSpecjalneWikiLinku}}{{Code|p.ZnakiSpecjalneWikiLinku}} ===
Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZnakiSpecjalneWikiLinku(frame)...end;
</syntaxhighlight>
Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu '''HTML'''.
}}
Funkcja wyszukuje parametry w ramce funkcji tablicy transportu, dziecka lub rodzica, lub w tablicy o kluczach parametrze o takiej samej nazwie, a nawet w zmiennej tekstowej, według: {{LinkZobaczTeż|schemat parametrów funkcji|}}, a te nazwy tych parametrów są w tabelce. Też jest tam przedstawiony schemat ważności parametrów.
Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}}
</syntaxhighlight>
Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej.
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZnakiSpecjalneWikiLinku/}}.
=== {{Śródtytuł|p.EncodeSpecjalneZnakiHtml}}{{Code|p.EncodeSpecjalneZnakiHtml}} ===
Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody '''HTML''', aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu,
| 2 = {{Code|normalnie}}| _2 = Czy ma omijać kody '''HTML'''.
}}
Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu:
{{OpisParametrów
| 1 = {{Code|html}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu '''HTML''',
| 2 = {{Code|normalnie}} | _2 = Czy ma omijać kody '''HTML''', jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji.
}}
Funkcja wyszukuje parametry w ramce funkcji tablicy transportu, dziecka lub rodzica, lub w tablicy o kluczach parametrze o takiej samej nazwie, a nawet w zmiennej tekstowej, według: {{LinkZobaczTeż|schemat parametrów funkcji|}}, a te nazwy tych parametrów są w tabelce. Też jest tam przedstawiony schemat ważności parametrów.
Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}}
</syntaxhighlight>
Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej.
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeSpecjalneZnakiHtml/}}.
=== {{Śródtytuł|p.EncodeZnakProloguList}}{{Code|p.EncodeZnakProloguList}} ===
Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod '''HTML''', a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub samym początku, to jest określane przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm '''MediaWiki''' generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeZnakProloguList(frame)...end;
</syntaxhighlight>
Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z podanego zestawu znaków pierwszych znaków listy, mechanizmu '''MediaWiki''', do dziesiętnego kodu '''HTML'''.
}}
Funkcja wyszukuje parametry w ramce funkcji tablicy transportu, dziecka lub rodzica, lub w tablicy o kluczach parametrze o takiej samej nazwie, a nawet w zmiennej tekstowej, według: {{LinkZobaczTeż|schemat parametrów funkcji|}}, a te nazwy tych parametrów są w tabelce. Też jest tam przedstawiony schemat ważności parametrów.
Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Html|EncodeZnakProloguList|tekst=
* Oto jest pierwszy element listy,
*: Oto jest drugi element listy.
}}
</syntaxhighlight>
Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej.
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZnakProloguList/}}.
=== {{Śródtytuł|p.ParametryPrzypisaniaZnakowegoEncodeHtml}}{{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml}} ===
Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne '''HTML'''.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody '''HTML''', w zależności od podanego drugiego parametru.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu.
| 2 = {{Code|normalnie}} | _2 = Czy ma omijać kody '''HTML'''.
}}
Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu '''HTML'''.
| 2 = {{Code|normalnie}} | _2 = Czy ma omijać kody '''HTML''', jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji.
}}
Funkcja wyszukuje parametry w ramce funkcji tablicy transportu, dziecka lub rodzica, lub w tablicy o kluczach parametrze o takiej samej nazwie, a nawet w zmiennej tekstowej, według: {{LinkZobaczTeż|schemat parametrów funkcji|}}, a te nazwy tych parametrów są w tabelce. Też jest tam przedstawiony schemat ważności parametrów.
Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit§ion=2}}
</syntaxhighlight>
Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej.
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ParametryPrzypisaniaZnakowegoEncodeHtml/}}.
=== {{Śródtytuł|p.PrzypisanieZnakoweEncodeHtml}}{{Code|p.PrzypisanieZnakoweEncodeHtml}} ===
Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), ale wywołana jak nazwana, aby nie była traktowana jako nazwana ze względu na występowanie w nim znaku równości {{Code|{{=}}}}, potem jest w pełni nienazwana po tej transformacji.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PrzypisanieZnakoweEncodeHtml(frame)...end;
</syntaxhighlight>
Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany znaków przypisania {{Code|{{=}}}} do dziesiętnego kodu '''HTML'''.
}}
Funkcja wyszukuje parametry w ramce funkcji tablicy transportu, dziecka lub rodzica, lub w tablicy o kluczach parametrze o takiej samej nazwie, a nawet w zmiennej tekstowej, według: {{LinkZobaczTeż|schemat parametrów funkcji|}}, a te nazwy tych parametrów są w tabelce. Też jest tam przedstawiony schemat ważności parametrów.
Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}}
</syntaxhighlight>
Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej.
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/PrzypisanieZnakoweEncodeHtml/}}.
=== {{Śródtytuł|p.ZamianaDwukropkaNaKodHtml}}{{Code|p.ZamianaDwukropkaNaKodHtml}} ===
Zamienia dwukropki na kody dziesiętne '''HTML''', tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZamianaDwukropkaNaKodHtml(frame)...end;
</syntaxhighlight>
Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany ze znaku dwukropka do dziesiętnego kodu '''HTML'''.
}}
Funkcja wyszukuje parametry w ramce funkcji tablicy transportu, dziecka lub rodzica, lub w tablicy o kluczach parametrze o takiej samej nazwie, a nawet w zmiennej tekstowej, według: {{LinkZobaczTeż|schemat parametrów funkcji|}}, a te nazwy tych parametrów są w tabelce. Też jest tam przedstawiony schemat ważności parametrów.
Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}}
</syntaxhighlight>
Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej.
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaDwukropkaNaKodHtml/}}.
== Inne funkcje kodujące ==
=== {{Śródtytuł|p.EncodeId}}{{Code|p.EncodeId}} ===
Funkcja służy do opcjonalnego dekodowania ciągów znakowych według: {{LinkŚródtytuł|p.DecodeHtml}}, i potem kodowania znakami '''HTML''' całego ciągu od specjalnych znaków, do tego celu do transformacji jest potrzebna funkcja: {{LinkŚródtytuł|p.EncodeSpecjalneZnakiHtml}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeId(id,bez_transformacji)...end;
</syntaxhighlight>
Parametry nieramkowe normalne funkcji:
{{OpisParametrów
| 1 = {{Code|id}} | _1 = Ciąg do przeinaczenia.
| 2 = {{Code|bez_transformacji}} | _2 = Gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{LinkŚródtytuł|p.DecodeHtml}}.
}}
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeId/}}.
== Funkcje kodów ==
=== {{Śródtytuł|p.KodHTMLZnaku}}{{Code|p.KodHTMLZnaku}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Zamienia zadany znak na kod dziesiętny '''HTML''', wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.KodHTMLZnaku(frame)...end;
</syntaxhighlight>
Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu:
{{OpisParametrów
| 1 = {{Code|1}} | _1 = Zmienna, pod którym jesKodHTMLZnakut znak do zamiany na kod dziesiętny '''HTML'''.
| 2 = {{Code|2}} | _2 = Czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
}}
Funkcja wyszukuje parametry w ramce funkcji tablicy transportu, dziecka lub rodzica, lub w tablicy o kluczach parametrze o takiej samej nazwie, a nawet w zmiennej tekstowej, według: {{LinkZobaczTeż|schemat parametrów funkcji|}}, a te nazwy tych parametrów są w tabelce. Też jest tam przedstawiony schemat ważności parametrów.
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodHTMLZnaku/}}.
==== Przykład kodu na stronie szablonu z przykładami na stronie ich opisów ====
Popatrz na wyniki szablonu: {{s|KodHTMLZnaku}}.
=== {{Śródtytuł|p["KodyHTMLZnakówWikiCiągu"]}}{{Code|p["KodyHTMLZnakówWikiCiągu"]}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne '''HTML''', wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}.
Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p["KodyHTMLZnakówWikiCiągu"](frame)...end;
</syntaxhighlight>
Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu:
{{OpisParametrów
| 1 = {{Code|1}} | _1 = Ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod '''HTML''', ciąg ten jest ze znakami wiki w UTF8.
| 2 = {{Code|2}} | _2 = Czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
}}
Funkcja wyszukuje parametry w ramce funkcji tablicy transportu, dziecka lub rodzica, lub w tablicy o kluczach parametrze o takiej samej nazwie, a nawet w zmiennej tekstowej, według: {{LinkZobaczTeż|schemat parametrów funkcji|}}, a te nazwy tych parametrów są w tabelce. Też jest tam przedstawiony schemat ważności parametrów.
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodyHTMLZnakówWikiCiągu/}}.
==== Przykład kodu na stronie szablonu z przykładami na stronie ich opisów ====
Popatrz na wyniki szablonu: {{s|KodyHTMLZnakówWikiCiągu}}.
== Funkcje usuwania z tekstu zbędnych znaków ==
=== {{Śródtytuł|p.UsuwanieSpecjalnychNieschematycznychSymboli}}{{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli}} ===
Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|parametr}} | _1 = Parametr z ciągiem znakowym do operacji.
}}
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UsuwanieSpecjalnychNieschematycznychSymboli/}}.
== Funkcje specjalistyczne kodujące i do nich odwrotne ==
=== {{Śródtytuł|p.EncodeWiki}}{{Code|p.EncodeWiki}} ===
Funkcja transformuje kody '''HTML''' do znaku przy pomocy funkcji {{LinkŚródtytuł|p["TransformacjaKoduHtmlDoZnakuCiągu"]}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|‎}}}} dzięki funkcji: {{LinkŚródtytuł|p.UsuwanieSpecjalnychNieschematycznychSymboli}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, dalej zaraz funkcja {{LzLua|mw.text.encode}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeWiki(parametr,czy_nie_odstepy)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|parametr}} | _1 = Tekst, który chcemy zakodować,
| 2 = {{Code|czy_nie_odstepy}} | _2 = Czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}.
}}
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeWiki/}}.
=== {{Śródtytuł|p.DecodeWiki}}{{Code|p.DecodeWiki}} ===
Funkcja {{LzLua|mw.text.decode}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|‎}}}}, dzięki funkcji: {{LinkŚródtytuł|p.UsuwanieSpecjalnychNieschematycznychSymboli}}, następnie działa opcjonalnie funkcją, która usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu oraz zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jedną dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DecodeWiki(parametr,czy_nie_odstepy)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|parametr}} | _1 = Tekst, który chcemy odkodować,
| 2 = {{Code|czy_nie_odstepy}} | _2 = Czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}.
}}
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeWiki/}}.
=== {{Śródtytuł|p.IsEncodedHtml}}{{Code|p.IsEncodedHtml}} ===
Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{LzLua|mw.uri.encode}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{LzLua|mw.uri.decode}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IsEncodedHtml(parametr,encode,encode_real)..end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|parametr}} | _1 = Parametr do sprawdzenia - wymagany.
| 2 = {{Code|encode}} | _2 = Gdy jest sprawdzana tylko obecność znaku {{Code|%}}.
| 3 = {{Code|encode_real}} | _3 = Gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}.
}}
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/IsEncodedHtml/}}.
=== {{Śródtytuł|p.EncodeHtml}}{{Code|p.EncodeHtml}} ===
Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{LinkŚródtytuł|p.EncodeWiki}}, a jeżeli nie to zostanie wywołana funkcja: {{lzLua|mw.uri.encode}} (z parametrem "WIKI").
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|parametr}} | _1 = Parametr do transformacji kodowania.
| 2 = {{Code|encode}} i {{Code|encode_real}} | _2 = Te parametry to samo oznaczają, co w funkcji: {{LinkŚródtytuł|p.IsEncodedHtml}},
| 3 = {{Code|czy_nie_odstepy}} | _3 = To samo oznacza, co w funkcji {{LinkŚródtytuł|p.EncodeWiki}}.
}}
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeHtml/}}.
=== {{Śródtytuł|p.DecodeHtml}}{{Code|p.DecodeHtml}} ===
Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{LzLua|mw.uri.decode}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|parametr}} | _1 = Parametr do odkodowania.
| 2 = {{Code|spacje}} | _2 = Gdy parametr odpowiada {{Code|true}} używa funkcji {{LinkŚródtytuł|p.DecodeWiki}}, w przeciwnym wypadku: {{LinkŚródtytuł|p.EncodeWiki}}, ale wpierw musi zostać wywołana funkcja {{LzLua|mw.uri.decode}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{LzLua|mw.uri.encode}}.
| 3 = {{Code|encode}} i {{Code|encode_real}} | _3 = Te parametry są używane przez funkcje {{LinkŚródtytuł|p.IsEncodedHtml}},
| 4 = {{Code|czy_nie_odstepy}} | _4 = Gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{LinkŚródtytuł|p.DecodeWiki}} lub {{LinkŚródtytuł|p.EncodeWiki}}.
}}
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeHtml/}}.
== Kody specjalne typowo tekstowe funkcji prostych i odwrotnych ==
=== {{Śródtytuł|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml}}{{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml}} ===
Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne '''HTML''', a także znaki lewego ukośnika {{Code|<nowiki>\</nowiki>}} też na to.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|znacznik}} | _1 = Atrybut do przetwarzania, aby w nim zamienić niektóre znaki, które przeszkadzają w analizie na kody, o odpowiednim formacie, '''HTML'''.
}}
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml/}}.
=== {{Śródtytuł|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak}}{{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak}} ===
Zamienia kody '''HTML''', tzn.: {{Code|{{Nowiki|<}}}}, {{Code|{{Nowiki|>}}}} i {{Code|{{Nowiki|&}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|\"}}}} na {{Code|<nowiki>\"</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|value}} | _1 = Parametr do transformacji niektórych kodów '''HTML''' na znaki.
}}
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak/}}.
== Funkcje wydzielania części z adresów ==
=== {{Śródtytuł|p["NagłówekStronyAdresu"]}}{{Code|p["NagłówekStronyAdresu"]}} ===
Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw.
Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu.
| 2 = {{Code|czy_nie_dolne_myslniki}} | _2 = Gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników.
| 3 = {{Code|tabela_nazw_adresu}} |_3 = Tabela nazw zespołu funkcji, która obejmuje funkcje {{LinkŚródtytuł|p["NagłówekStronyAdresu"]}}, {{LinkŚródtytuł|p["ParametryStronyAdresu"]}} i {{LinkŚródtytuł|p["NazwaStronyAdresu"]}}.
}}
Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik.
Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu:
{{OpisParametrów
| 1 = {{Code|nazwa jednostki}}, {{Code|strona}} lub {{Code|1}} | _1 = Nazwa jednostki (strony), tzn. jego adres.
| 2 = {{Code|z nie dolnymi z myślnikami}} lub {{Code|2}}, bądź drugi zwyły parametr funkcji {{Code|czy_nie_dolne_myslniki}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji.
}}
Funkcja wyszukuje parametry w ramce funkcji tablicy transportu, dziecka lub rodzica, lub w tablicy o kluczach parametrze o takiej samej nazwie, a nawet w zmiennej tekstowej, według: {{LinkZobaczTeż|schemat parametrów funkcji|}}, a te nazwy tych parametrów są w tabelce. Też jest tam przedstawiony schemat ważności parametrów.
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NagłówekStronyAdresu/}}.
=== {{Śródtytuł|p["ParametryStronyAdresu"]}}{{Code|p["ParametryStronyAdresu"]}} ===
Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw.
Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu.
| 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony.
| 3 = {{Code|tabela_nazw_adresu}} |_3 = Tabela nazw zespołu funkcji, która obejmuje funkcje {{LinkŚródtytuł|p["NagłówekStronyAdresu"]}}, {{LinkŚródtytuł|p["ParametryStronyAdresu"]}} i {{LinkŚródtytuł|p["NazwaStronyAdresu"]}}.
}}
Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu:
{{OpisParametrów
| 1 = {{Code|nazwa jednostki}}, {{Code|strona}} lub {{Code|1}} | _1 = Nazwa jednostki (strony), tzn. jego adres.
| 2 = {{Code|czy naprawiać}} lub {{Code|2}}, bądź parametr drugi funkcji: {{Code|czy_naprawiaj}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji.
}}
Funkcja wyszukuje parametry w ramce funkcji tablicy transportu, dziecka lub rodzica, lub w tablicy o kluczach parametrze o takiej samej nazwie, a nawet w zmiennej tekstowej, według: {{LinkZobaczTeż|schemat parametrów funkcji|}}, a te nazwy tych parametrów są w tabelce. Też jest tam przedstawiony schemat ważności parametrów.
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ParametryStronyAdresu/}}.
=== {{Śródtytuł|p["NazwaStronyAdresu"]}}{{Code|p["NazwaStronyAdresu"]}} ===
Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw.
Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu.
| 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony.
| 3 = {{Code|tabela_nazw_adresu}} | _3 = Tabela nazw zespołu funkcji, która obejmuje funkcje {{LinkŚródtytuł|p["NagłówekStronyAdresu"]}}, {{LinkŚródtytuł|p["ParametryStronyAdresu"]}} i {{LinkŚródtytuł|p["NazwaStronyAdresu"]}}.
}}
Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu:
{{OpisParametrów
| 1 = {{Code|nazwa jednostki}}, {{Code|strona}} lub {{Code|1}} | _1 = Nazwa jednostki (strony), tzn. jego adres.
| 2 = {{Code|czy naprawiać}} lub {{Code|2}}, bądź parametr drugi funkcji: {{Code|czy_naprawiaj}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji.
}}
Funkcja wyszukuje parametry w ramce funkcji tablicy transportu, dziecka lub rodzica, lub w tablicy o kluczach parametrze o takiej samej nazwie, a nawet w zmiennej tekstowej, według: {{LinkZobaczTeż|schemat parametrów funkcji|}}, a te nazwy tych parametrów są w tabelce. Też jest tam przedstawiony schemat ważności parametrów.
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NazwaStronyAdresu/}}.
=== {{Śródtytuł|p["NazwaStronyZParametrówStronyAdresu"]}}{{Code|p["NazwaStronyZParametrówStronyAdresu"]}} ===
Funkcja wydziela nazwę strony z parametrów adresu strony.
Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}.
<syntaxhighlight lang="lua">
p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu.
| 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony.
}}
Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu:
{{OpisParametrów
| 1 = {{Code|parametry}} lub {{Code|1}} | _1 = Nazwa jednostki (strony), tzn. jego adres.
| 2 = {{Code|czy naprawiać}} lub {{Code|2}}, bądź drugi parametr funkcji: {{Code|czy_naprawiaj}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji.
}}
Funkcja wyszukuje parametry w ramce funkcji tablicy transportu, dziecka lub rodzica, lub w tablicy o kluczach parametrze o takiej samej nazwie, a nawet w zmiennej tekstowej, według: {{LinkZobaczTeż|schemat parametrów funkcji|}}, a te nazwy tych parametrów są w tabelce. Też jest tam przedstawiony schemat ważności parametrów.
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NazwaStronyZParametrówStronyAdresu/}}.
=== {{Śródtytuł|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]}}{{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]}} ===
Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw.
Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|frame}} | _1 = tablica ramki funkcji tablicy transportu.
| 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej.
| 3 = {{Code|tabela_nazw_adresu}} | _3 = tabela nazw zespołu funkcji, która obejmuje funkcje {{LinkŚródtytuł|p["NagłówekStronyAdresu"]}}, {{LinkŚródtytuł|p["ParametryStronyAdresu"]}} i {{LinkŚródtytuł|p["NazwaStronyAdresu"]}}.
}}
Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu:
{{OpisParametrów
| 1 = {{Code|nazwa jednostki}}, {{Code|strona}} lub {{Code|1}} | _1 = Nazwa jednostki (strony), tzn. jego adres.
| 2 = {{Code|czy naprawiać}} lub {{Code|2}}, bądź drugi parametr funkcji: {{Code|czy_naprawiaj}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji.
}}
Funkcja wyszukuje parametry w ramce funkcji tablicy transportu, dziecka lub rodzica, lub w tablicy o kluczach parametrze o takiej samej nazwie, a nawet w zmiennej tekstowej, według: {{LinkZobaczTeż|schemat parametrów funkcji|}}, a te nazwy tych parametrów są w tabelce. Też jest tam przedstawiony schemat ważności parametrów.
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/PoprawAdresNagłówkaOrazParametrówStronyAdresu/}}.
== Funkcje stron ==
=== {{Śródtytuł|p.URLStrona}}{{Code|p.URLStrona}} ===
Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}.
Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.URLStrona(frame)...end;
</syntaxhighlight>
Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu:
{{OpisParametrów
| 1 = {{Code|url}} lub {{Code|1}} | _1 = Adres strony.
| 2 = {{Code|ukośnik}} lub {{Code|2}} | _2 = Czy do nazwy strony ma wliczać ukośnik.
}}
Funkcja wyszukuje parametry w ramce funkcji tablicy transportu, dziecka lub rodzica, lub w tablicy o kluczach parametrze o takiej samej nazwie, a nawet w zmiennej tekstowej, według: {{LinkZobaczTeż|schemat parametrów funkcji|}}, a te nazwy tych parametrów są w tabelce. Też jest tam przedstawiony schemat ważności parametrów.
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/URLStrona/}}.
=== {{Śródtytuł|p["UrlBezProtokołu"]}}{{Code|p["UrlBezProtokołu"]}} ===
Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu, a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposobu, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}.
Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["UrlBezProtokołu"]=function(frame)...end;
</syntaxhighlight>
Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu:
{{OpisParametrów
| 1 = {{Code|url}} lub {{Code|1}} | _1 = Adres strony, ewentualnie z opcjonalnym protokołem.
}}
Funkcja wyszukuje parametry w ramce funkcji tablicy transportu, dziecka lub rodzica, lub w tablicy o kluczach parametrze o takiej samej nazwie, a nawet w zmiennej tekstowej, według: {{LinkZobaczTeż|schemat parametrów funkcji|}}, a te nazwy tych parametrów są w tabelce. Też jest tam przedstawiony schemat ważności parametrów.
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UrlBezProtokołu/}}.
== Funkcje kodujące i dekodujące ==
=== {{Śródtytuł|p.DecodeKoduHTMLZnaku}}{{Code|p.DecodeKoduHTMLZnaku}} ===
Zamienia kody '''HTML''', tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DecodeKoduHTMLZnaku(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Tekst do zamienienia z dziesiętnymi, szesnastkowymi i literowymi kodami '''HTML''' na odpowiednie znaki.
}}
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeKoduHTMLZnaku/}}.
=== {{Śródtytuł|p.ZamianaEncodeTekst}}{{Code|p.ZamianaEncodeTekst}} ===
Adres strony dekoduje funkcją: {{LzLua|mw.uri.decode}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{LzLua|w.uri.encode}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZamianaEncodeTekst(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane.
}}
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaEncodeTekst/}}.
=== {{Śródtytuł|p.ZamianaEncodeNaPodstawieWzoruTekstu}}{{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu}} ===
Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{LinkŚródtytuł|p.ZamianaEncodeTekst}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor,funkcja)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Zawartość, na którą działamy.
| 2 = {{Code|wzor}} | _2 = Części do podziałania tą funkcją.
| 3 = {{Code|funkcja}} | _3 = Funkcja, którą działamy na te części.
}}
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaEncodeNaPodstawieWzoruTekstu/}}.
=== {{Śródtytuł|p.EncodePodstawoweHtmlTekstu}}{{Code|p.EncodePodstawoweHtmlTekstu}} ===
Funkcja blokuje odkodowywanie możliwych kodów '''HTML''' znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{LinkŚródtytuł|p.KodowanieOmijanieFunkcyjne}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach '''HTML''', tzn. {{Code|{{Nowiki|#}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, kolejno przed i po wywołaniem tej funkcji, funkcjami: {{LinkŚródtytuł|p.EncodeHashKoduHtmlTekstu}} i {{LinkŚródtytuł|p.DecodeHashKoduHtmlTekstu}}.
Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{LinkŚródtytuł|p.DecodeKoduHTMLZnaku}}, do odkodowania kodów, '''HTML''', dziesiętnych, szesnastkowych i literowych. Po samym końcu kodowane są specjalne znaki na podstawie: {{LinkŚródtytuł|p.EncodeSpecjalneZnakiHtml}}, na kody '''HTML'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|elementy_adresu_strony}} | _1 = Funkcja do podstawowego kodowania adresu.
}}
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodePodstawoweHtmlTekstu/}}.
=== {{Śródtytuł|p.EncodeElementyAdresuStrony}}{{Code|p.EncodeElementyAdresuStrony}} ===
Gdy mamy problem (przypadek) z parametrami adresu strony, wtedy do kodowania wywoływana jest funkcja {{LinkŚródtytuł|p.EncodeZaawansowanyParametryHtml}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{LzLua|mw.uri.decode}}, następnie {{LinkŚródtytuł|p.EncodePodstawoweHtmlTekstu}}, i jeżeli mały włączone kodowanie, następnie {{LzLua|mw.uri.encode}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|elementy_adresu_strony}} | _1 = Element adresu strony.
| 2 = {{Code|czy_parametry_strony}} | _2 = Czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry.
| 3 = {{Code|z_kodowaniem}} | _3 = Czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania.
}}
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeElementyAdresuStrony/}}.
== Funkcje operujące na kodach '''HTML''' znaków '''#''', zapisaną dziesiętnie, szesnastkowo lub literowo, na wersję pośrednią lub z ==
=== {{Śródtytuł|p.EncodeHashKoduHtmlTekstu}}{{Code|p.EncodeHashKoduHtmlTekstu}} ===
Funkcja koduje kod '''HTML''' znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|#}}}}, {{Code|{{Nowiki|#}}}} i {{Code|{{Nowiki|#}}}}. Te wszystkie kody funkcja zamienia je z każdych na kod: {{Code|{{Nowiki|&num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku.
Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{LinkŚródtytuł|p.DecodeHashKoduHtmlTekstu}}, a tak powstałe znaki {{Code|{{Nowiki|#}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane przy analizie nagłówkowej.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeHashKoduHtmlTekstu(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Tekst do przetworzenia.
}}
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeHashKoduHtmlTekstu/}}.
=== {{Śródtytuł|p.DecodeHashKoduHtmlTekstu}}{{Code|p.DecodeHashKoduHtmlTekstu}} ===
Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|#}}}}, {{Code|{{Nowiki|#}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#num}}}}, wtedy druga zmienna z parametrów jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|#}}}} z kodu {{Code|{{Nowiki|#num}}}}, używając tej funkcji.
Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części z pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre '''HTML''', zostały wywołane w celu odkodowania różnych części zakodowanych wcześniej, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej.
Funkcją odwrotną do tego w nagłówku ma nazwę: {{LinkŚródtytuł|p.EncodeHashKoduHtmlTekstu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Tekst do przetworzenia,
| 2 = {{Code|ile}} | _2 = {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych zamian kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#num}}}}.
}}
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeHashKoduHtmlTekstu/}}.
== Fukcja operująca na znakach '''#''' w kodach '''HTML''' ==
=== {{Śródtytuł|p.EncodeTempHashKoduHtmlTekstu}}{{Code|p.EncodeTempHashKoduHtmlTekstu}} ===
Jeżeli mamy jakieś kody '''HTML''', to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|#}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeTempHashKoduHtmlTekstu(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Tekst do przetworzenia.
}}
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeTempHashKoduHtmlTekstu/}}.
=== {{Śródtytuł|p.DecodeTempHashKoduHtmlTekstu}}{{Code|p.DecodeTempHashKoduHtmlTekstu}} ===
Jeżeli mamy jakieś kody '''HTML''', to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|#}}}}. One tak zostały zamienione funkcją {{LinkŚródtytuł|p.EncodeTempHashKoduHtmlTekstu}}. Po rozłożeniu na trzy części pełnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, możemy wywołać dla każdej z nich tę funkcję, wykonując operację odwrotną.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end;
</syntaxhighlight>
Parametry zwykłe funkcji:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Tekst do przetworzenia i po rozdzieleniu na trzy części.
| 2 = {{Code|ile1}} | _2 = Ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej.
| 3 = {{Code|ile2}} | _3 = Ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej.
}}
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeTempHashKoduHtmlTekstu/}}.
== Funkcje rozdzielania na czyste adresy, ich parametry i nagłówki, oraz do nich funkcje odwrotne ==
=== {{Śródtytuł|p.StronaParametryIdentyfikacjaAdresuHtml}}{{Code|p.StronaParametryIdentyfikacjaAdresuHtml}} ===
Funkcja z całkowitego adresu składającego się z adresu właściwego, parametrów i nagłówka, rozdziela na trzy części, z których się składa.
Funkcja sprawdza, czy jakikolwiek kody '''HTML''' występują w pełnym adresie strony, jeżeli są, to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{LinkŚródtytuł|p.EncodeHashKoduHtmlTekstu}}, a później w kodach '''HTML''' znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy '''HTML''', czyli: {{Code|{{Nowiki|#}}}}, funkcją: {{LinkŚródtytuł|p.EncodeTempHashKoduHtmlTekstu}} (jeżeli w adresie kody istnieją), wtedy coś powstaje w rodzaju dla kodu dziesiętnego: {{Code|<nowiki>&#(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&#x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|#}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja rozdziela adres na trzy części, a później odkodowuje każdą część funkcją: {{LinkŚródtytuł|p.DecodeTempHashKoduHtmlTekstu}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{LinkŚródtytuł|p.DecodeHashKoduHtmlTekstu}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej).
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|adres}} | _1 = Adres do potrzelenia na trzy części.
}}
Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}).
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/StronaParametryIdentyfikacjaAdresuHtml/}}.
=== {{Śródtytuł|p.TworzenieAdresuHtml}}{{Code|p.TworzenieAdresuHtml}} ===
Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&#}}}}. Funkcja wykorzystuje do dekodowania tego {{LinkŚródtytuł|p.DecodeHashKoduHtmlTekstu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|strona}} | _1 = Normalny adres strony, bez parametrów i nagłówka,
| 2 = {{Code|parametry}} | _2 = Parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}},
| 3 = {{Code|nagłówek}} | _3 = Nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie,
}}
Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych '''HTML''') i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}).
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TworzenieAdresuHtml/}}.
== Specjalistyczne ogólne funkcje adresów ==
=== Funkcja kombajn adresów ===
==== {{Śródtytuł|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml}}{{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml}} ====
Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami (jeśli mechanizm {{NS|k=mw|w=tak|l=tak|pk=m}}, to uwzględnia) i nagłówkiem strony.
Adres dzielimy je na trzy części funkcją: {{LinkŚródtytuł|p.StronaParametryIdentyfikacjaAdresuHtml}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją: {{LinkŚródtytuł|p.TworzenieAdresuHtml}}.
Przy analizie adresów, właściwych, parametrów i nagłówków, funkcja z trzech funkcji strony, parametrów i nagłówka, w której w drugim parametrze jest procedura, należy opcjonalnie skorzystać, będąca algorytmem wbudowanym w funkcję do przetwarzania tych adresów, jako ich drugi parametr.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|adres}} | _1 = Pełny adres do przetworzenia.
| 2 = {{Code|funkcja_strona}} | _2 = Funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka.
| 3 = {{Code|funkcja_parametry}} | _3 = Funkcja, którą działamy na parametry adresu strony.
| 4 = {{Code|funkcja_naglowek}} | _4 = Funkcja, którą działamy na nagłówek strony adresu.
}}
===== Przykład kodu na stronie modułów z przykładami na stronie ich opisów =====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TworzenieStronaParametryIdentyfikacjaAdresuHtml/}}.
=== Funkcje pośrednie oparte na kombajnie ===
==== {{Śródtytuł|p.EncodeParametryURL}}{{Code|p.EncodeParametryURL}} ====
Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu.
Funkcja właściwy adres strony i nagłówek działa odpowiednimi procedurami. Funkcja do tego wykorzystuje lub nie, ale ma to w definicji, funkcję: {{LinkŚródtytuł|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml}}.
Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale.
Przy analizie nazw i wartości parametrów wykorzystuje: {{LinkŚródtytuł|p.ZamianaEncodeTekst}}.
Dla adresu, bez części parametrowej i nagłówkowej, operacje są robione, oprócz znaków {{Code|/}}.
Przy analizie adresów właściwych i nagłówków funkcja, z dwóch funkcji strony i nagłówka, w której w drugim parametrze jest wbudowana procedura, których należy opcjonalnie skorzystać, będąca algorytmem wbudowanym w funkcję do przetwarzania tych adresów.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.EncodeParametryURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end;
</syntaxhighlight>
Parametry funkcji:
*{{OpisParametrów
| 1 = {{Code|adres}} | _1 = Pełny adres strony z parametrami i nagłówkiem.
| 2 = {{Code|z_kodowaniem}} | _2 = Czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania.
| 3 = {{Code|w_adresie}} | _3 = Czy rozpatrywać cały adres, a nie tylko parametry.
| 4 = {{Code|funkcja_strona}} | _4 = Funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka.
| 5 = {{Code|funkcja_naglowek}} | _5 = funkcja, którą działamy na nagłówek.
}}
===== Przykład kodu na stronie modułów z przykładami na stronie ich opisów =====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeParametryURL/}}.
==== {{Śródtytuł|p.EncodeZaawansowanyParametryURL}}{{Code|p.EncodeZaawansowanyParametryURL}} ====
Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu.
Funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami, jest to robione wewnwętrz funkcji: {{LinkŚródtytuł|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml}}.
Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale.
Przy analizie przy analizie tych trzech uzyskanych zmiennych parametrów wykorzystuje: {{LinkŚródtytuł|p.EncodeSpecjalneZnakiHtml}}, ale przed nim wywoływana jest funkcja: {{LzLua|mw.uri.decode}}, a po nim: {{LzLua|mw.uri.encode}}.
Dla adresu, bez części parametrowej i nagłówkowej, operacje są robione, oprócz znaków {{Code|/}}.
Przy analizie adresów właściwych i nagłówków funkcja, z dwóch funkcji strony i nagłówka, w której w drugim parametrze jest wbudowana procedura, których należy opcjonalnie skorzystać, będąca algorytmem wbudowanym w funkcję do przetwarzania tych adresów.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeZaawansowanyParametryURL(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|adres}} | _1 = Pełny adres strony z parametrami i nagłówkiem.
| 2 = {{Code|z_kodowaniem}} | _2 = Czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania.
| 3 = {{Code|w_adresie}} | _3 = Czy rozpatrywać cały adres, a nie tylko parametry.
| 4 = {{Code|funkcja_strona}} | _4 = Funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka.
| 5 = {{Code|funkcja_naglowek}} | _5 = funkcja, którą działamy na nagłówek.
}}
===== Przykład kodu na stronie modułów z przykładami na stronie ich opisów =====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZaawansowanyParametryURL/}}.
==== {{Śródtytuł|p.EncodeParametryHtml}}{{Code|p.EncodeParametryHtml}} ====
Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu.
Funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami, jest to robione wewnwętrz funkcji: {{LinkŚródtytuł|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml}}.
Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale.
Przy analizie nazw i wartości parametrów wykorzystuje {{LinkŚródtytuł|p.EncodeHtml}}.
Dla adresu, bez części parametrowej i nagłówkowej, operacje są robione, oprócz znaków {{Code|/}}, to jest robione przy pomocy: {{LinkŚródtytuł|p.ZamianaEncodeNaPodstawieWzoruTekstu}}.
Przy analizie adresów właściwych i nagłówków funkcja, z dwóch funkcji strony i nagłówka, w której w drugim parametrze jest wbudowana procedura, których należy opcjonalnie skorzystać, będąca algorytmem wbudowanym w funkcję do przetwarzania tych adresów.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|adres}} | _1 = Pełny adres strony z parametrami i nagłówkiem.
| 2 = {{Code|w_adresie}} | _2 = Czy rozpatrywać cały adres, a nie tylko parametry.
| 3 = {{Code|funkcja_strona}} | _3 = Funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka.
| 4 = {{Code|funkcja_naglowek}} | _4 = Funkcja, którą działamy na nagłówek.
}}
===== Przykład kodu na stronie modułów z przykładami na stronie ich opisów =====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeParametryHtml/}}.
==== {{Śródtytuł|p.EncodeZaawansowanyParametryHtml}}{{Code|p.EncodeZaawansowanyParametryHtml}} ====
Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu.
Funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami, jest to robione wewnwętrz funkcji: {{LinkŚródtytuł|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml}}.
Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale.
Przy analizie nazw i wartości parametrów wykorzystuje: {{LinkŚródtytuł|p.EncodePodstawoweHtmlTekstu}}, a przed nim wywoływana jest: {{LzLua|mw.uri.decode}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy: {{LzLua|mw.uri.encode}}.
Dla adresu, bez części parametrowej i nagłówkowej, operacje są robione, oprócz znaków {{Code|/}}.
Przy analizie adresów właściwych i nagłówków funkcja, z dwóch funkcji strony i nagłówka, w której w drugim parametrze jest wbudowana procedura, których należy opcjonalnie skorzystać, będąca algorytmem wbudowanym w funkcję do przetwarzania tych adresów.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|adres}} | _1 = Pełny adres strony z parametrami i nagłówkiem.
| 2 = {{Code|z_kodowaniem}} | _2 = Czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania.
| 3 = {{Code|w_adresie}} | _3 = Czy rozpatrywać cały adres, a nie tylko parametry.
| 4 = {{Code|funkcja_strona}} | _4 = funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka.
| 5 = {{Code|funkcja_naglowek}} | _5 = funkcja, którą działamy na nagłówek.
}}
===== Przykład kodu na stronie modułów z przykładami na stronie ich opisów =====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZaawansowanyParametryHtml/}}.
=== Specjalistyczne szczególne funkcje adresów ===
==== {{Śródtytuł|p.AdresDomniemanieBezProtokolarnyEncodeURL}}{{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL}} ====
Funkcja korzysta z kombajna z funkcji: {{LinkŚródtytuł|p.EncodeParametryURL}}. Główną funkcją kodującą jej jest: {{LinkŚródtytuł|p.ZamianaEncodeTekst}}.
Funkcja rozdziela adres, napisany bez nagłówka i parametrów, na protokół i adres bezprotolarny, w celu jego zakodowania funkcją: {{LinkŚródtytuł|p["UrlBezProtokołu"]}}. Ona domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja do tego celu wykorzystuje funkcję {{LinkŚródtytuł|p.ZamianaEncodeNaPodstawieWzoruTekstu}}.
Dla adresu, bez części parametrowej i nagłówkowej, operacje są robione, oprócz znaków {{Code|/}}, ado tego celu przy rozdzielaniu poziomów korzysta z: {{LinkŚródtytuł|p.ZamianaEncodeNaPodstawieWzoruTekstu}}.
Przy analizie adresów właściwych i nagłówków funkcja, z dwóch funkcji strony i nagłówka, w której w drugim parametrze jest wbudowana procedura, których należy opcjonalnie skorzystać, będąca algorytmem wbudowanym w funkcję do przetwarzania tych adresów.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|adres}} | _1 = Adres do zakodowania.
| 2 = {{Code|protokolarny}} | _2 = Czy ma rozkładać adres na nazwę strony i protokół.
}}
===== Przykład kodu na stronie modułów z przykładami na stronie ich opisów =====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/AdresDomniemanieBezProtokolarnyEncodeURL/}}.
==== {{Śródtytuł|p.AdresProjektuEncodeHtml}}{{Code|p.AdresProjektuEncodeHtml}} ====
Funkcja korzysta z kombajna z funkcji: {{LinkŚródtytuł|p.EncodeZaawansowanyParametryHtml}}, a w niej do dekodowania na samym początku '''URL''' {{LzLua|mw.uri.decode}}, a na końcu {{LzLua|mw.uri.encode}}, jeżeli jest włączone kodowanie, między czasie korzysta z: {{LinkŚródtytuł|p.EncodePodstawoweHtmlTekstu}}. A przy rozdzielaniu poziomów korzysta z: {{LinkŚródtytuł|p.ZamianaEncodeNaPodstawieWzoruTekstu}}.
Dla adresu, bez części parametrowej i nagłówkowej, operacje są robione, oprócz znaków {{Code|/}}.
Przy analizie adresów właściwych i nagłówków funkcja, z dwóch funkcji strony i nagłówka, w której w drugim parametrze jest wbudowana procedura, których należy opcjonalnie skorzystać, będąca algorytmem wbudowanym w funkcję do przetwarzania tych adresów.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu.
| 2 = {{Code|z_kodowaniem}} | _2 = Czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania.
| 3 = {{Code|protokolarny}} | _3 = Czy uważać przy kodowaniu na protokoły pełnych adresów stron.
}}
Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu:
{{OpisParametrów
| 1 = {{Code|html}} | _1 = Adres do kodowania.
| 2 = {{Code|encode}} | _2 = Czy kodować.
}}
Funkcja wyszukuje parametry w ramce funkcji tablicy transportu, dziecka lub rodzica, lub w tablicy o kluczach parametrze o takiej samej nazwie, a nawet w zmiennej tekstowej, według: {{LinkZobaczTeż|schemat parametrów funkcji|}}, a te nazwy tych parametrów są w tabelce. Też jest tam przedstawiony schemat ważności parametrów.
===== Przykład kodu na stronie modułów z przykładami na stronie ich opisów =====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/AdresProjektuEncodeHtml/}}.
== Wykorzystanie szczególnych funkcji adresów ==
=== {{Śródtytuł|p.UriEncode}}{{Code|p.UriEncode}} ===
Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{LinkŚródtytuł|p.AdresDomniemanieBezProtokolarnyEncodeURL}}. A przy rozdzielaniu poziomów korzysta z: {{LinkŚródtytuł|p.ZamianaEncodeNaPodstawieWzoruTekstu}}.
Do wyszukiwania adresów jest brana funkcja: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UriEncode(frame)...end;
</syntaxhighlight>
Parametry tablicy ramki tablicy transportu:
{{OpisParametrów
| 1 = {{Code|html}} | _1 = Adres z protokołem strony.
}}
Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}.
==== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ====
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UriEncode/}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ckxokb31yqs832ephcfrpbuqzykbcvr
Wikibooks:Moduły/StronicowyParser/Rozdziały
4
63903
557884
556353
2026-09-29T05:09:06Z
Persino
2851
/* Zmienne szablonowe rozkładu ich na czynniki pierwsze */
557884
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}}}},
*** Rozdziały sztucznego napisu wprowadzenia tekstu, dla szablonów takich jak: {{s|HNumer}}, gdzie jego parametr pierwszy, to zwykły anormalny rozdział dodatni równaniowy, nawet z niedozwoloną liczbą równa się po obu stronach,
* 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|p=StronicowyParser/Rozdziały/Tom II}}}}, 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 przeważnie 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 szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tabela parametrów szablonu.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = Nazwa szablonu.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela jego modyfikatorów uruchomień szablonów ich w wywołaniach.
}}
==== Zmienne znacznikowe: '''{{lpg|HTML}}''' i mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' ====
{{OpisParametrów
| 1 = {{Code|nazwa}} {{Patrz|nazwa}} | _1 = Nazwa znacznika, napisana małymi literami.
| 2 = {{Code|zawartosc}} {{Patrz|zawartosc}} | _2 = Zawartość znacznika, pomiędzy tagami.
| 3 = {{Code|atrybuty}} {{Patrz|atrybuty}} | _3 = Atrybuty znacznika, w tagach.
}}
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
{{OpisParametrów
| 1 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _1 = 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}}}}.
| 2 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _2 = Tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne.
| 3 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _3 = Tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
}}
===== Inne elementy bazy =====
{{OpisParametrów
| 1 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _1 = 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 ====
{{OpisParametrów
| 1 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} | _1 = Funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
| 2 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _2 = funkcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
}}
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} | _1 = Służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych,
| 2 = {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} | _2 = 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}},
| 3 = {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} | _3 = 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 =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} | _1 = Funkcja do analizowania linków zwykłych wewnętrznychi zewnętrznych oraz linków tzw. inteligentnych.
}}
==== Elementy bazy ====
{{OpisParametrów
| 1 = {{Code|obiekt}} {{Patrz|obiekt}} | _1 = Parametr, w postaci łańcucha znakowego typu elementu w kodzie.
| 2 = {{Code|kod}} {{Patrz|kod}} | _2 = 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 ====
{{OpisParametrów
| 1 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _1 = te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
| 2 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _2 = 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}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje.
{{Hr}}
{{Kolumny|2|2=
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - Operacje na sekcjach ===
Funkcje do uzyskiwania informacji o sekcji, w tym o jej numerze, i jej tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach. One służą w operacjach w skryptach {{lpg|JavaScript}}.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - Tworzenie i wydobywania coś z sekcji ===
Funkcje do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe, a nawet według szablonu {{s|HNumer}}. Funkcje tworzące nagłowki o dowolnym poziomie, raz jako nagłówki dodatnie równaniowo, a za innym razem według znaczników nagłówków, albo tylko według znaczników nagłówków. Funkcje są tam od wydzielania z nagłówka samego napisu wprowadzenia tekstu, tzn. jego zawartość. Funkcje wykrywające, czy w nim są rozdziały dodatnie rówaniowo, czy pozycje listy.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - Modyfikacje elementów w celu uzyskania lepszego formatu ===
Funkcje do modyfikacji analizowanej strony do lepszego formatu, by później łatwo dało się ją parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne. One sprawdzają, czy w nich są szablony, które muszą być w spisie, któryś przynajmniej z nich, ale nie zawsze. Funkcje sparwdzające, czy w nich są specjalne obiekty. Czy szablony mają odpowiednie nazwy według szablonów kompletowania. Funkcje usuwające kolejne spacje i dolne myślniki zamieniając je na jedną spacje. Funkcje wydzielające z wnętrza szablonu ich odpowiednią zawartość, według ściśle okreslonej procedury. Funkcje tworzące elementy według wzoru. Fukcje zamieniające znaczniki i szablony, nowej linii i kresek, na kolejno na znaki nowej linii. Funkcje do integracji tekstu.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - Parsowanie innych linii niż rozdziały dodatnie równaniowo ===
Funkcje do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, o analizowanych liniach, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - Zbieranie informacji o sekcjach i ich tekstach rozdziałów ===
Funkcje do skladania, upraszczania ich oraz zbierania informacji o rozdziałach i ich tekstach rozdziałów (w tym ich modyfikacji i tworzeniu), i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
f8d78f6f0lc741pabf7mq0ijm008f3a
557885
557884
2026-09-29T05:09:32Z
Persino
2851
/* Funkcje bazy */
557885
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}}}},
*** Rozdziały sztucznego napisu wprowadzenia tekstu, dla szablonów takich jak: {{s|HNumer}}, gdzie jego parametr pierwszy, to zwykły anormalny rozdział dodatni równaniowy, nawet z niedozwoloną liczbą równa się po obu stronach,
* 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|p=StronicowyParser/Rozdziały/Tom II}}}}, 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 przeważnie 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 szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tabela parametrów szablonu.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = Nazwa szablonu.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela jego modyfikatorów uruchomień szablonów ich w wywołaniach.
}}
==== Zmienne znacznikowe: '''{{lpg|HTML}}''' i mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' ====
{{OpisParametrów
| 1 = {{Code|nazwa}} {{Patrz|nazwa}} | _1 = Nazwa znacznika, napisana małymi literami.
| 2 = {{Code|zawartosc}} {{Patrz|zawartosc}} | _2 = Zawartość znacznika, pomiędzy tagami.
| 3 = {{Code|atrybuty}} {{Patrz|atrybuty}} | _3 = Atrybuty znacznika, w tagach.
}}
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
{{OpisParametrów
| 1 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _1 = 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}}}}.
| 2 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _2 = Tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne.
| 3 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _3 = Tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
}}
===== Inne elementy bazy =====
{{OpisParametrów
| 1 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _1 = 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 ====
{{OpisParametrów
| 1 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} | _1 = Funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
| 2 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _2 = funkcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
}}
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} | _1 = Służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych,
| 2 = {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} | _2 = 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}},
| 3 = {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} | _3 = 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 =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} | _1 = Funkcja do analizowania linków zwykłych wewnętrznychi zewnętrznych oraz linków tzw. inteligentnych.
}}
==== Elementy bazy ====
{{OpisParametrów
| 1 = {{Code|obiekt}} {{Patrz|obiekt}} | _1 = Parametr, w postaci łańcucha znakowego typu elementu w kodzie.
| 2 = {{Code|kod}} {{Patrz|kod}} | _2 = 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 ====
{{OpisParametrów
| 1 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _1 = te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
| 2 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _2 = 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}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje.
{{Hr}}
{{Kolumny|2|2=
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - Operacje na sekcjach ===
Funkcje do uzyskiwania informacji o sekcji, w tym o jej numerze, i jej tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach. One służą w operacjach w skryptach {{lpg|JavaScript}}.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - Tworzenie i wydobywania coś z sekcji ===
Funkcje do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe, a nawet według szablonu {{s|HNumer}}. Funkcje tworzące nagłowki o dowolnym poziomie, raz jako nagłówki dodatnie równaniowo, a za innym razem według znaczników nagłówków, albo tylko według znaczników nagłówków. Funkcje są tam od wydzielania z nagłówka samego napisu wprowadzenia tekstu, tzn. jego zawartość. Funkcje wykrywające, czy w nim są rozdziały dodatnie rówaniowo, czy pozycje listy.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - Modyfikacje elementów w celu uzyskania lepszego formatu ===
Funkcje do modyfikacji analizowanej strony do lepszego formatu, by później łatwo dało się ją parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne. One sprawdzają, czy w nich są szablony, które muszą być w spisie, któryś przynajmniej z nich, ale nie zawsze. Funkcje sparwdzające, czy w nich są specjalne obiekty. Czy szablony mają odpowiednie nazwy według szablonów kompletowania. Funkcje usuwające kolejne spacje i dolne myślniki zamieniając je na jedną spacje. Funkcje wydzielające z wnętrza szablonu ich odpowiednią zawartość, według ściśle okreslonej procedury. Funkcje tworzące elementy według wzoru. Fukcje zamieniające znaczniki i szablony, nowej linii i kresek, na kolejno na znaki nowej linii. Funkcje do integracji tekstu.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - Parsowanie innych linii niż rozdziały dodatnie równaniowo ===
Funkcje do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, o analizowanych liniach, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - Zbieranie informacji o sekcjach i ich tekstach rozdziałów ===
Funkcje do skladania, upraszczania ich oraz zbierania informacji o rozdziałach i ich tekstach rozdziałów (w tym ich modyfikacji i tworzeniu), i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
h0cht29quw3qwv5pzo3vo6c4vloya18
557886
557885
2026-09-29T05:10:14Z
Persino
2851
/* Inne */
557886
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}}}},
*** Rozdziały sztucznego napisu wprowadzenia tekstu, dla szablonów takich jak: {{s|HNumer}}, gdzie jego parametr pierwszy, to zwykły anormalny rozdział dodatni równaniowy, nawet z niedozwoloną liczbą równa się po obu stronach,
* 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|p=StronicowyParser/Rozdziały/Tom II}}}}, 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 przeważnie 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 szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tabela parametrów szablonu.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = Nazwa szablonu.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela jego modyfikatorów uruchomień szablonów ich w wywołaniach.
}}
==== Zmienne znacznikowe: '''{{lpg|HTML}}''' i mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' ====
{{OpisParametrów
| 1 = {{Code|nazwa}} {{Patrz|nazwa}} | _1 = Nazwa znacznika, napisana małymi literami.
| 2 = {{Code|zawartosc}} {{Patrz|zawartosc}} | _2 = Zawartość znacznika, pomiędzy tagami.
| 3 = {{Code|atrybuty}} {{Patrz|atrybuty}} | _3 = Atrybuty znacznika, w tagach.
}}
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
{{OpisParametrów
| 1 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _1 = 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}}}}.
| 2 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _2 = Tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne.
| 3 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _3 = Tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
}}
===== Inne elementy bazy =====
{{OpisParametrów
| 1 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _1 = 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 ====
{{OpisParametrów
| 1 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} | _1 = Funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
| 2 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _2 = funkcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
}}
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} | _1 = Służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych,
| 2 = {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} | _2 = 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}},
| 3 = {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} | _3 = 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 =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} | _1 = Funkcja do analizowania linków zwykłych wewnętrznych i zewnętrznych oraz linków, tzw. inteligentnych.
}}
==== Elementy bazy ====
{{OpisParametrów
| 1 = {{Code|obiekt}} {{Patrz|obiekt}} | _1 = Parametr, w postaci łańcucha znakowego typu elementu w kodzie.
| 2 = {{Code|kod}} {{Patrz|kod}} | _2 = 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 ====
{{OpisParametrów
| 1 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _1 = te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
| 2 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _2 = 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}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje.
{{Hr}}
{{Kolumny|2|2=
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - Operacje na sekcjach ===
Funkcje do uzyskiwania informacji o sekcji, w tym o jej numerze, i jej tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach. One służą w operacjach w skryptach {{lpg|JavaScript}}.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - Tworzenie i wydobywania coś z sekcji ===
Funkcje do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe, a nawet według szablonu {{s|HNumer}}. Funkcje tworzące nagłowki o dowolnym poziomie, raz jako nagłówki dodatnie równaniowo, a za innym razem według znaczników nagłówków, albo tylko według znaczników nagłówków. Funkcje są tam od wydzielania z nagłówka samego napisu wprowadzenia tekstu, tzn. jego zawartość. Funkcje wykrywające, czy w nim są rozdziały dodatnie rówaniowo, czy pozycje listy.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - Modyfikacje elementów w celu uzyskania lepszego formatu ===
Funkcje do modyfikacji analizowanej strony do lepszego formatu, by później łatwo dało się ją parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne. One sprawdzają, czy w nich są szablony, które muszą być w spisie, któryś przynajmniej z nich, ale nie zawsze. Funkcje sparwdzające, czy w nich są specjalne obiekty. Czy szablony mają odpowiednie nazwy według szablonów kompletowania. Funkcje usuwające kolejne spacje i dolne myślniki zamieniając je na jedną spacje. Funkcje wydzielające z wnętrza szablonu ich odpowiednią zawartość, według ściśle okreslonej procedury. Funkcje tworzące elementy według wzoru. Fukcje zamieniające znaczniki i szablony, nowej linii i kresek, na kolejno na znaki nowej linii. Funkcje do integracji tekstu.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - Parsowanie innych linii niż rozdziały dodatnie równaniowo ===
Funkcje do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, o analizowanych liniach, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - Zbieranie informacji o sekcjach i ich tekstach rozdziałów ===
Funkcje do skladania, upraszczania ich oraz zbierania informacji o rozdziałach i ich tekstach rozdziałów (w tym ich modyfikacji i tworzeniu), i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
eroyk1zgz7ivczmpdnay5l6t66k4gf0
557887
557886
2026-09-29T05:13:08Z
Persino
2851
/* Elementy bazy */
557887
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}}}},
*** Rozdziały sztucznego napisu wprowadzenia tekstu, dla szablonów takich jak: {{s|HNumer}}, gdzie jego parametr pierwszy, to zwykły anormalny rozdział dodatni równaniowy, nawet z niedozwoloną liczbą równa się po obu stronach,
* 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|p=StronicowyParser/Rozdziały/Tom II}}}}, 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 przeważnie 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 szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tabela parametrów szablonu.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = Nazwa szablonu.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela jego modyfikatorów uruchomień szablonów ich w wywołaniach.
}}
==== Zmienne znacznikowe: '''{{lpg|HTML}}''' i mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' ====
{{OpisParametrów
| 1 = {{Code|nazwa}} {{Patrz|nazwa}} | _1 = Nazwa znacznika, napisana małymi literami.
| 2 = {{Code|zawartosc}} {{Patrz|zawartosc}} | _2 = Zawartość znacznika, pomiędzy tagami.
| 3 = {{Code|atrybuty}} {{Patrz|atrybuty}} | _3 = Atrybuty znacznika, w tagach.
}}
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
{{OpisParametrów
| 1 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _1 = 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}}}}.
| 2 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _2 = Tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne.
| 3 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _3 = Tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
}}
===== Inne elementy bazy =====
{{OpisParametrów
| 1 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _1 = 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 ====
{{OpisParametrów
| 1 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} | _1 = Funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
| 2 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _2 = funkcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
}}
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} | _1 = Służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych,
| 2 = {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} | _2 = 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}},
| 3 = {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} | _3 = 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 =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} | _1 = Funkcja do analizowania linków zwykłych wewnętrznych i zewnętrznych oraz linków, tzw. inteligentnych.
}}
==== Elementy bazy ====
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Wnętrze obiektu kodowanego o typie {{LinkPatrz|obiekt}} i numerze {{LinkPatrz|kod}}.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Parametr, w postaci łańcucha znakowego typu elementu w kodzie.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = 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 ====
{{OpisParametrów
| 1 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _1 = te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
| 2 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _2 = 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}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje.
{{Hr}}
{{Kolumny|2|2=
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - Operacje na sekcjach ===
Funkcje do uzyskiwania informacji o sekcji, w tym o jej numerze, i jej tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach. One służą w operacjach w skryptach {{lpg|JavaScript}}.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - Tworzenie i wydobywania coś z sekcji ===
Funkcje do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe, a nawet według szablonu {{s|HNumer}}. Funkcje tworzące nagłowki o dowolnym poziomie, raz jako nagłówki dodatnie równaniowo, a za innym razem według znaczników nagłówków, albo tylko według znaczników nagłówków. Funkcje są tam od wydzielania z nagłówka samego napisu wprowadzenia tekstu, tzn. jego zawartość. Funkcje wykrywające, czy w nim są rozdziały dodatnie rówaniowo, czy pozycje listy.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - Modyfikacje elementów w celu uzyskania lepszego formatu ===
Funkcje do modyfikacji analizowanej strony do lepszego formatu, by później łatwo dało się ją parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne. One sprawdzają, czy w nich są szablony, które muszą być w spisie, któryś przynajmniej z nich, ale nie zawsze. Funkcje sparwdzające, czy w nich są specjalne obiekty. Czy szablony mają odpowiednie nazwy według szablonów kompletowania. Funkcje usuwające kolejne spacje i dolne myślniki zamieniając je na jedną spacje. Funkcje wydzielające z wnętrza szablonu ich odpowiednią zawartość, według ściśle okreslonej procedury. Funkcje tworzące elementy według wzoru. Fukcje zamieniające znaczniki i szablony, nowej linii i kresek, na kolejno na znaki nowej linii. Funkcje do integracji tekstu.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - Parsowanie innych linii niż rozdziały dodatnie równaniowo ===
Funkcje do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, o analizowanych liniach, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - Zbieranie informacji o sekcjach i ich tekstach rozdziałów ===
Funkcje do skladania, upraszczania ich oraz zbierania informacji o rozdziałach i ich tekstach rozdziałów (w tym ich modyfikacji i tworzeniu), i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
hf5brt2te3cn2ou4ct0w4tooq0h0du0
557888
557887
2026-09-29T05:14:18Z
Persino
2851
/* Elementy bazy */
557888
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}}}},
*** Rozdziały sztucznego napisu wprowadzenia tekstu, dla szablonów takich jak: {{s|HNumer}}, gdzie jego parametr pierwszy, to zwykły anormalny rozdział dodatni równaniowy, nawet z niedozwoloną liczbą równa się po obu stronach,
* 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|p=StronicowyParser/Rozdziały/Tom II}}}}, 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 przeważnie 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 szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tabela parametrów szablonu.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = Nazwa szablonu.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela jego modyfikatorów uruchomień szablonów ich w wywołaniach.
}}
==== Zmienne znacznikowe: '''{{lpg|HTML}}''' i mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' ====
{{OpisParametrów
| 1 = {{Code|nazwa}} {{Patrz|nazwa}} | _1 = Nazwa znacznika, napisana małymi literami.
| 2 = {{Code|zawartosc}} {{Patrz|zawartosc}} | _2 = Zawartość znacznika, pomiędzy tagami.
| 3 = {{Code|atrybuty}} {{Patrz|atrybuty}} | _3 = Atrybuty znacznika, w tagach.
}}
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
{{OpisParametrów
| 1 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _1 = 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}}}}.
| 2 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _2 = Tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne.
| 3 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _3 = Tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
}}
===== Inne elementy bazy =====
{{OpisParametrów
| 1 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _1 = 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 ====
{{OpisParametrów
| 1 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} | _1 = Funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
| 2 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _2 = funkcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
}}
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} | _1 = Służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych,
| 2 = {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} | _2 = 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}},
| 3 = {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} | _3 = 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 =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} | _1 = Funkcja do analizowania linków zwykłych wewnętrznych i zewnętrznych oraz linków, tzw. inteligentnych.
}}
==== Elementy bazy ====
{{OpisParametrów
| 1 = {{Code|szablon}} {{LinkPatrz|szablon}} {{LinkZobaczTeż|szablon}} | _1 = Wnętrze obiektu kodowanego o typie {{LinkPatrz|obiekt}} i numerze {{LinkPatrz|kod}}.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Parametr, w postaci łańcucha znakowego typu elementu w kodzie.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = 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 ====
{{OpisParametrów
| 1 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _1 = te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
| 2 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _2 = 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}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje.
{{Hr}}
{{Kolumny|2|2=
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - Operacje na sekcjach ===
Funkcje do uzyskiwania informacji o sekcji, w tym o jej numerze, i jej tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach. One służą w operacjach w skryptach {{lpg|JavaScript}}.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - Tworzenie i wydobywania coś z sekcji ===
Funkcje do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe, a nawet według szablonu {{s|HNumer}}. Funkcje tworzące nagłowki o dowolnym poziomie, raz jako nagłówki dodatnie równaniowo, a za innym razem według znaczników nagłówków, albo tylko według znaczników nagłówków. Funkcje są tam od wydzielania z nagłówka samego napisu wprowadzenia tekstu, tzn. jego zawartość. Funkcje wykrywające, czy w nim są rozdziały dodatnie rówaniowo, czy pozycje listy.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - Modyfikacje elementów w celu uzyskania lepszego formatu ===
Funkcje do modyfikacji analizowanej strony do lepszego formatu, by później łatwo dało się ją parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne. One sprawdzają, czy w nich są szablony, które muszą być w spisie, któryś przynajmniej z nich, ale nie zawsze. Funkcje sparwdzające, czy w nich są specjalne obiekty. Czy szablony mają odpowiednie nazwy według szablonów kompletowania. Funkcje usuwające kolejne spacje i dolne myślniki zamieniając je na jedną spacje. Funkcje wydzielające z wnętrza szablonu ich odpowiednią zawartość, według ściśle okreslonej procedury. Funkcje tworzące elementy według wzoru. Fukcje zamieniające znaczniki i szablony, nowej linii i kresek, na kolejno na znaki nowej linii. Funkcje do integracji tekstu.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - Parsowanie innych linii niż rozdziały dodatnie równaniowo ===
Funkcje do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, o analizowanych liniach, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - Zbieranie informacji o sekcjach i ich tekstach rozdziałów ===
Funkcje do skladania, upraszczania ich oraz zbierania informacji o rozdziałach i ich tekstach rozdziałów (w tym ich modyfikacji i tworzeniu), i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
sagiz2z30jxxxiolud4c72nn04xner8
557889
557888
2026-09-29T05:14:52Z
Persino
2851
/* Zmienne bazy */
557889
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}}}},
*** Rozdziały sztucznego napisu wprowadzenia tekstu, dla szablonów takich jak: {{s|HNumer}}, gdzie jego parametr pierwszy, to zwykły anormalny rozdział dodatni równaniowy, nawet z niedozwoloną liczbą równa się po obu stronach,
* 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|p=StronicowyParser/Rozdziały/Tom II}}}}, 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 przeważnie zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje,
* {{Code|szablon}} {{Patrz|szablon}} {{ZobaczTeż|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 szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tabela parametrów szablonu.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = Nazwa szablonu.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela jego modyfikatorów uruchomień szablonów ich w wywołaniach.
}}
==== Zmienne znacznikowe: '''{{lpg|HTML}}''' i mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' ====
{{OpisParametrów
| 1 = {{Code|nazwa}} {{Patrz|nazwa}} | _1 = Nazwa znacznika, napisana małymi literami.
| 2 = {{Code|zawartosc}} {{Patrz|zawartosc}} | _2 = Zawartość znacznika, pomiędzy tagami.
| 3 = {{Code|atrybuty}} {{Patrz|atrybuty}} | _3 = Atrybuty znacznika, w tagach.
}}
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
{{OpisParametrów
| 1 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _1 = 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}}}}.
| 2 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _2 = Tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne.
| 3 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _3 = Tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
}}
===== Inne elementy bazy =====
{{OpisParametrów
| 1 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _1 = 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 ====
{{OpisParametrów
| 1 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} | _1 = Funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
| 2 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _2 = funkcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
}}
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} | _1 = Służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych,
| 2 = {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} | _2 = 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}},
| 3 = {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} | _3 = 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 =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} | _1 = Funkcja do analizowania linków zwykłych wewnętrznych i zewnętrznych oraz linków, tzw. inteligentnych.
}}
==== Elementy bazy ====
{{OpisParametrów
| 1 = {{Code|szablon}} {{LinkPatrz|szablon}} {{LinkZobaczTeż|szablon}} | _1 = Wnętrze obiektu kodowanego o typie {{LinkPatrz|obiekt}} i numerze {{LinkPatrz|kod}}.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Parametr, w postaci łańcucha znakowego typu elementu w kodzie.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = 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 ====
{{OpisParametrów
| 1 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _1 = te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
| 2 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _2 = 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}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje.
{{Hr}}
{{Kolumny|2|2=
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - Operacje na sekcjach ===
Funkcje do uzyskiwania informacji o sekcji, w tym o jej numerze, i jej tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach. One służą w operacjach w skryptach {{lpg|JavaScript}}.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - Tworzenie i wydobywania coś z sekcji ===
Funkcje do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe, a nawet według szablonu {{s|HNumer}}. Funkcje tworzące nagłowki o dowolnym poziomie, raz jako nagłówki dodatnie równaniowo, a za innym razem według znaczników nagłówków, albo tylko według znaczników nagłówków. Funkcje są tam od wydzielania z nagłówka samego napisu wprowadzenia tekstu, tzn. jego zawartość. Funkcje wykrywające, czy w nim są rozdziały dodatnie rówaniowo, czy pozycje listy.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - Modyfikacje elementów w celu uzyskania lepszego formatu ===
Funkcje do modyfikacji analizowanej strony do lepszego formatu, by później łatwo dało się ją parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne. One sprawdzają, czy w nich są szablony, które muszą być w spisie, któryś przynajmniej z nich, ale nie zawsze. Funkcje sparwdzające, czy w nich są specjalne obiekty. Czy szablony mają odpowiednie nazwy według szablonów kompletowania. Funkcje usuwające kolejne spacje i dolne myślniki zamieniając je na jedną spacje. Funkcje wydzielające z wnętrza szablonu ich odpowiednią zawartość, według ściśle okreslonej procedury. Funkcje tworzące elementy według wzoru. Fukcje zamieniające znaczniki i szablony, nowej linii i kresek, na kolejno na znaki nowej linii. Funkcje do integracji tekstu.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - Parsowanie innych linii niż rozdziały dodatnie równaniowo ===
Funkcje do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, o analizowanych liniach, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - Zbieranie informacji o sekcjach i ich tekstach rozdziałów ===
Funkcje do skladania, upraszczania ich oraz zbierania informacji o rozdziałach i ich tekstach rozdziałów (w tym ich modyfikacji i tworzeniu), i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
btk1vgfv7xv145tkn6q8ftnhyri52nl
557890
557889
2026-09-29T05:15:36Z
Persino
2851
/* Elementy bazy */
557890
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}}}},
*** Rozdziały sztucznego napisu wprowadzenia tekstu, dla szablonów takich jak: {{s|HNumer}}, gdzie jego parametr pierwszy, to zwykły anormalny rozdział dodatni równaniowy, nawet z niedozwoloną liczbą równa się po obu stronach,
* 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|p=StronicowyParser/Rozdziały/Tom II}}}}, 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 przeważnie zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje,
* {{Code|szablon}} {{Patrz|szablon}} {{ZobaczTeż|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 szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tabela parametrów szablonu.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = Nazwa szablonu.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela jego modyfikatorów uruchomień szablonów ich w wywołaniach.
}}
==== Zmienne znacznikowe: '''{{lpg|HTML}}''' i mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' ====
{{OpisParametrów
| 1 = {{Code|nazwa}} {{Patrz|nazwa}} | _1 = Nazwa znacznika, napisana małymi literami.
| 2 = {{Code|zawartosc}} {{Patrz|zawartosc}} | _2 = Zawartość znacznika, pomiędzy tagami.
| 3 = {{Code|atrybuty}} {{Patrz|atrybuty}} | _3 = Atrybuty znacznika, w tagach.
}}
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
{{OpisParametrów
| 1 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _1 = 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}}}}.
| 2 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _2 = Tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne.
| 3 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _3 = Tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
}}
===== Inne elementy bazy =====
{{OpisParametrów
| 1 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _1 = 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 ====
{{OpisParametrów
| 1 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} | _1 = Funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
| 2 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _2 = funkcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
}}
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} | _1 = Służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych,
| 2 = {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} | _2 = 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}},
| 3 = {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} | _3 = 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 =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} | _1 = Funkcja do analizowania linków zwykłych wewnętrznych i zewnętrznych oraz linków, tzw. inteligentnych.
}}
==== Elementy bazy ====
{{OpisParametrów
| 1 = {{Code|szablon}} {{LinkPatrz|szablon}} {{LinkZobaczTeż|szablon}} | _1 = Wnętrze, też zakodowane, obiektu kodowanego o typie {{LinkPatrz|obiekt}} i numerze {{LinkPatrz|kod}}.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Parametr, w postaci łańcucha znakowego typu elementu w kodzie.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = 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 ====
{{OpisParametrów
| 1 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _1 = te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
| 2 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _2 = 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}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje.
{{Hr}}
{{Kolumny|2|2=
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - Operacje na sekcjach ===
Funkcje do uzyskiwania informacji o sekcji, w tym o jej numerze, i jej tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach. One służą w operacjach w skryptach {{lpg|JavaScript}}.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - Tworzenie i wydobywania coś z sekcji ===
Funkcje do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe, a nawet według szablonu {{s|HNumer}}. Funkcje tworzące nagłowki o dowolnym poziomie, raz jako nagłówki dodatnie równaniowo, a za innym razem według znaczników nagłówków, albo tylko według znaczników nagłówków. Funkcje są tam od wydzielania z nagłówka samego napisu wprowadzenia tekstu, tzn. jego zawartość. Funkcje wykrywające, czy w nim są rozdziały dodatnie rówaniowo, czy pozycje listy.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - Modyfikacje elementów w celu uzyskania lepszego formatu ===
Funkcje do modyfikacji analizowanej strony do lepszego formatu, by później łatwo dało się ją parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne. One sprawdzają, czy w nich są szablony, które muszą być w spisie, któryś przynajmniej z nich, ale nie zawsze. Funkcje sparwdzające, czy w nich są specjalne obiekty. Czy szablony mają odpowiednie nazwy według szablonów kompletowania. Funkcje usuwające kolejne spacje i dolne myślniki zamieniając je na jedną spacje. Funkcje wydzielające z wnętrza szablonu ich odpowiednią zawartość, według ściśle okreslonej procedury. Funkcje tworzące elementy według wzoru. Fukcje zamieniające znaczniki i szablony, nowej linii i kresek, na kolejno na znaki nowej linii. Funkcje do integracji tekstu.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - Parsowanie innych linii niż rozdziały dodatnie równaniowo ===
Funkcje do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, o analizowanych liniach, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - Zbieranie informacji o sekcjach i ich tekstach rozdziałów ===
Funkcje do skladania, upraszczania ich oraz zbierania informacji o rozdziałach i ich tekstach rozdziałów (w tym ich modyfikacji i tworzeniu), i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
5z7skety4pdpqcbsltq497s9pyas074
557956
557890
2026-09-29T08:41:35Z
Persino
2851
/* Zmienne bazy */
557956
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}}}},
*** Rozdziały sztucznego napisu wprowadzenia tekstu, dla szablonów takich jak: {{s|HNumer}}, gdzie jego parametr pierwszy, to zwykły anormalny rozdział dodatni równaniowy, nawet z niedozwoloną liczbą równa się po obu stronach,
* 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|p=StronicowyParser/Rozdziały/Tom II}}}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) | _1 = Tekst przeważnie zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje.
| 2 = {{Code|szablon}} {{Patrz|szablon}} {{ZobaczTeż|szablon}} | _2 = 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.
| 3 = {{Code|pelna_nazwa_spisu_tresci}} {{Patrz|pelna_nazwa_spisu_tresci}} | _3 = Uchwyt tabeli, zwykle równy adresowi strony, z zawartością, którego bazujemy, ale nie zawsze, bazy kodów wewnątrz pamięci: {{Code|{{m|Szablonowe}}}}, gdy zmienna: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jest równa wartości: {{Code|nil}}.
| 4 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} | _4 = Pełna nazwa strony szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
}}
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tabela parametrów szablonu.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = Nazwa szablonu.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela jego modyfikatorów uruchomień szablonów ich w wywołaniach.
}}
==== Zmienne znacznikowe: '''{{lpg|HTML}}''' i mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' ====
{{OpisParametrów
| 1 = {{Code|nazwa}} {{Patrz|nazwa}} | _1 = Nazwa znacznika, napisana małymi literami.
| 2 = {{Code|zawartosc}} {{Patrz|zawartosc}} | _2 = Zawartość znacznika, pomiędzy tagami.
| 3 = {{Code|atrybuty}} {{Patrz|atrybuty}} | _3 = Atrybuty znacznika, w tagach.
}}
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
{{OpisParametrów
| 1 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _1 = 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}}}}.
| 2 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _2 = Tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne.
| 3 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _3 = Tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
}}
===== Inne elementy bazy =====
{{OpisParametrów
| 1 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _1 = 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 ====
{{OpisParametrów
| 1 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} | _1 = Funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
| 2 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _2 = funkcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
}}
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} | _1 = Służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych,
| 2 = {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} | _2 = 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}},
| 3 = {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} | _3 = 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 =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} | _1 = Funkcja do analizowania linków zwykłych wewnętrznych i zewnętrznych oraz linków, tzw. inteligentnych.
}}
==== Elementy bazy ====
{{OpisParametrów
| 1 = {{Code|szablon}} {{LinkPatrz|szablon}} {{LinkZobaczTeż|szablon}} | _1 = Wnętrze, też zakodowane, obiektu kodowanego o typie {{LinkPatrz|obiekt}} i numerze {{LinkPatrz|kod}}.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Parametr, w postaci łańcucha znakowego typu elementu w kodzie.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = 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 ====
{{OpisParametrów
| 1 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _1 = te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
| 2 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _2 = 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}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje.
{{Hr}}
{{Kolumny|2|2=
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - Operacje na sekcjach ===
Funkcje do uzyskiwania informacji o sekcji, w tym o jej numerze, i jej tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach. One służą w operacjach w skryptach {{lpg|JavaScript}}.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - Tworzenie i wydobywania coś z sekcji ===
Funkcje do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe, a nawet według szablonu {{s|HNumer}}. Funkcje tworzące nagłowki o dowolnym poziomie, raz jako nagłówki dodatnie równaniowo, a za innym razem według znaczników nagłówków, albo tylko według znaczników nagłówków. Funkcje są tam od wydzielania z nagłówka samego napisu wprowadzenia tekstu, tzn. jego zawartość. Funkcje wykrywające, czy w nim są rozdziały dodatnie rówaniowo, czy pozycje listy.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - Modyfikacje elementów w celu uzyskania lepszego formatu ===
Funkcje do modyfikacji analizowanej strony do lepszego formatu, by później łatwo dało się ją parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne. One sprawdzają, czy w nich są szablony, które muszą być w spisie, któryś przynajmniej z nich, ale nie zawsze. Funkcje sparwdzające, czy w nich są specjalne obiekty. Czy szablony mają odpowiednie nazwy według szablonów kompletowania. Funkcje usuwające kolejne spacje i dolne myślniki zamieniając je na jedną spacje. Funkcje wydzielające z wnętrza szablonu ich odpowiednią zawartość, według ściśle okreslonej procedury. Funkcje tworzące elementy według wzoru. Fukcje zamieniające znaczniki i szablony, nowej linii i kresek, na kolejno na znaki nowej linii. Funkcje do integracji tekstu.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - Parsowanie innych linii niż rozdziały dodatnie równaniowo ===
Funkcje do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, o analizowanych liniach, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - Zbieranie informacji o sekcjach i ich tekstach rozdziałów ===
Funkcje do skladania, upraszczania ich oraz zbierania informacji o rozdziałach i ich tekstach rozdziałów (w tym ich modyfikacji i tworzeniu), i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ovufipv4kdi2fjv5tjq1mpc4plr449v
557963
557956
2026-09-29T09:00:51Z
Persino
2851
/* Zmienne szablonowe rozkładu ich na czynniki pierwsze */
557963
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}}}},
*** Rozdziały sztucznego napisu wprowadzenia tekstu, dla szablonów takich jak: {{s|HNumer}}, gdzie jego parametr pierwszy, to zwykły anormalny rozdział dodatni równaniowy, nawet z niedozwoloną liczbą równa się po obu stronach,
* 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|p=StronicowyParser/Rozdziały/Tom II}}}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) | _1 = Tekst przeważnie zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje.
| 2 = {{Code|szablon}} {{Patrz|szablon}} {{ZobaczTeż|szablon}} | _2 = 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.
| 3 = {{Code|pelna_nazwa_spisu_tresci}} {{Patrz|pelna_nazwa_spisu_tresci}} | _3 = Uchwyt tabeli, zwykle równy adresowi strony, z zawartością, którego bazujemy, ale nie zawsze, bazy kodów wewnątrz pamięci: {{Code|{{m|Szablonowe}}}}, gdy zmienna: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jest równa wartości: {{Code|nil}}.
| 4 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} | _4 = Pełna nazwa strony szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
}}
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tabela parametrów szablonu. Parametry nienazwane są w postaci mają klucze w postaci liczb całkowitych, nie łańcuchów znakowych, a te liczby nie mogą mieć na początku zera, ani znaku: {{Code|+}}, ale za może mieć: {{Code|-}}. A inne parametry są o kluczach nazwanych. Wartości tych parametrów są łańcuchami znakowymi.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = Nazwa szablonu, w wersji szablonowej, czyli nazwa ta jest bez przestrzeni nazw: {{Np|Template|link=tak}}, a w przypadku przestrzeni nazw: {{Np|(main)|link=tak}}, jest on z dwukropkiem, dla odróżnienia z nazwą szablonową dla specjalnie szablonów, a dla innych przestrzeni nazwy stron są równe ich pełnym nazwą strony.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela jego modyfikatorów uruchomień szablonów ich w wywołaniach.
}}
==== Zmienne znacznikowe: '''{{lpg|HTML}}''' i mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' ====
{{OpisParametrów
| 1 = {{Code|nazwa}} {{Patrz|nazwa}} | _1 = Nazwa znacznika, napisana małymi literami.
| 2 = {{Code|zawartosc}} {{Patrz|zawartosc}} | _2 = Zawartość znacznika, pomiędzy tagami.
| 3 = {{Code|atrybuty}} {{Patrz|atrybuty}} | _3 = Atrybuty znacznika, w tagach.
}}
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
{{OpisParametrów
| 1 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _1 = 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}}}}.
| 2 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _2 = Tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne.
| 3 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _3 = Tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
}}
===== Inne elementy bazy =====
{{OpisParametrów
| 1 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _1 = 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 ====
{{OpisParametrów
| 1 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} | _1 = Funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
| 2 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _2 = funkcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
}}
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} | _1 = Służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych,
| 2 = {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} | _2 = 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}},
| 3 = {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} | _3 = 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 =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} | _1 = Funkcja do analizowania linków zwykłych wewnętrznych i zewnętrznych oraz linków, tzw. inteligentnych.
}}
==== Elementy bazy ====
{{OpisParametrów
| 1 = {{Code|szablon}} {{LinkPatrz|szablon}} {{LinkZobaczTeż|szablon}} | _1 = Wnętrze, też zakodowane, obiektu kodowanego o typie {{LinkPatrz|obiekt}} i numerze {{LinkPatrz|kod}}.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Parametr, w postaci łańcucha znakowego typu elementu w kodzie.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = 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 ====
{{OpisParametrów
| 1 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _1 = te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
| 2 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _2 = 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}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje.
{{Hr}}
{{Kolumny|2|2=
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - Operacje na sekcjach ===
Funkcje do uzyskiwania informacji o sekcji, w tym o jej numerze, i jej tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach. One służą w operacjach w skryptach {{lpg|JavaScript}}.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - Tworzenie i wydobywania coś z sekcji ===
Funkcje do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe, a nawet według szablonu {{s|HNumer}}. Funkcje tworzące nagłowki o dowolnym poziomie, raz jako nagłówki dodatnie równaniowo, a za innym razem według znaczników nagłówków, albo tylko według znaczników nagłówków. Funkcje są tam od wydzielania z nagłówka samego napisu wprowadzenia tekstu, tzn. jego zawartość. Funkcje wykrywające, czy w nim są rozdziały dodatnie rówaniowo, czy pozycje listy.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - Modyfikacje elementów w celu uzyskania lepszego formatu ===
Funkcje do modyfikacji analizowanej strony do lepszego formatu, by później łatwo dało się ją parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne. One sprawdzają, czy w nich są szablony, które muszą być w spisie, któryś przynajmniej z nich, ale nie zawsze. Funkcje sparwdzające, czy w nich są specjalne obiekty. Czy szablony mają odpowiednie nazwy według szablonów kompletowania. Funkcje usuwające kolejne spacje i dolne myślniki zamieniając je na jedną spacje. Funkcje wydzielające z wnętrza szablonu ich odpowiednią zawartość, według ściśle okreslonej procedury. Funkcje tworzące elementy według wzoru. Fukcje zamieniające znaczniki i szablony, nowej linii i kresek, na kolejno na znaki nowej linii. Funkcje do integracji tekstu.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - Parsowanie innych linii niż rozdziały dodatnie równaniowo ===
Funkcje do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, o analizowanych liniach, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - Zbieranie informacji o sekcjach i ich tekstach rozdziałów ===
Funkcje do skladania, upraszczania ich oraz zbierania informacji o rozdziałach i ich tekstach rozdziałów (w tym ich modyfikacji i tworzeniu), i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
lp2tpu1ys6fgntrpjdklyl6ury610sv
557965
557963
2026-09-29T09:06:41Z
Persino
2851
/* Zmienne szablonowe rozkładu ich na czynniki pierwsze */
557965
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}}}},
*** Rozdziały sztucznego napisu wprowadzenia tekstu, dla szablonów takich jak: {{s|HNumer}}, gdzie jego parametr pierwszy, to zwykły anormalny rozdział dodatni równaniowy, nawet z niedozwoloną liczbą równa się po obu stronach,
* 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|p=StronicowyParser/Rozdziały/Tom II}}}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) | _1 = Tekst przeważnie zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje.
| 2 = {{Code|szablon}} {{Patrz|szablon}} {{ZobaczTeż|szablon}} | _2 = 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.
| 3 = {{Code|pelna_nazwa_spisu_tresci}} {{Patrz|pelna_nazwa_spisu_tresci}} | _3 = Uchwyt tabeli, zwykle równy adresowi strony, z zawartością, którego bazujemy, ale nie zawsze, bazy kodów wewnątrz pamięci: {{Code|{{m|Szablonowe}}}}, gdy zmienna: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jest równa wartości: {{Code|nil}}.
| 4 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} | _4 = Pełna nazwa strony szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
}}
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tabela parametrów szablonu. Parametry nienazwane są w postaci mają klucze w postaci liczb całkowitych, nie łańcuchów znakowych, a te liczby nie mogą mieć na początku zera, ani znaku: {{Code|+}}, ale za może mieć: {{Code|-}}. A inne parametry są o kluczach nazwanych. Wartości tych parametrów są łańcuchami znakowymi.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = Nazwa szablonu, w wersji szablonowej, czyli nazwa ta jest bez przestrzeni nazw: {{Np|Template|link=tak}}, a w przypadku przestrzeni nazw: {{Np|(main)|link=tak}}, jest on z dwukropkiem, dla odróżnienia z nazwą szablonową dla specjalnie szablonów, a dla innych przestrzeni nazwy stron są równe ich pełnym nazwą strony.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela jego modyfikatorów uruchomień szablonów ich w wywołaniach. Pełna tabela modyfikatorów znajduje się w kodzie: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{Code|{{ld2|Szablonowe/dane}}}}.
}}
==== Zmienne znacznikowe: '''{{lpg|HTML}}''' i mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' ====
{{OpisParametrów
| 1 = {{Code|nazwa}} {{Patrz|nazwa}} | _1 = Nazwa znacznika, napisana małymi literami.
| 2 = {{Code|zawartosc}} {{Patrz|zawartosc}} | _2 = Zawartość znacznika, pomiędzy tagami.
| 3 = {{Code|atrybuty}} {{Patrz|atrybuty}} | _3 = Atrybuty znacznika, w tagach.
}}
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
{{OpisParametrów
| 1 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _1 = 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}}}}.
| 2 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _2 = Tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne.
| 3 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _3 = Tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
}}
===== Inne elementy bazy =====
{{OpisParametrów
| 1 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _1 = 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 ====
{{OpisParametrów
| 1 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} | _1 = Funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
| 2 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _2 = funkcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
}}
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} | _1 = Służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych,
| 2 = {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} | _2 = 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}},
| 3 = {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} | _3 = 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 =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} | _1 = Funkcja do analizowania linków zwykłych wewnętrznych i zewnętrznych oraz linków, tzw. inteligentnych.
}}
==== Elementy bazy ====
{{OpisParametrów
| 1 = {{Code|szablon}} {{LinkPatrz|szablon}} {{LinkZobaczTeż|szablon}} | _1 = Wnętrze, też zakodowane, obiektu kodowanego o typie {{LinkPatrz|obiekt}} i numerze {{LinkPatrz|kod}}.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Parametr, w postaci łańcucha znakowego typu elementu w kodzie.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = 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 ====
{{OpisParametrów
| 1 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _1 = te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
| 2 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _2 = 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}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje.
{{Hr}}
{{Kolumny|2|2=
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - Operacje na sekcjach ===
Funkcje do uzyskiwania informacji o sekcji, w tym o jej numerze, i jej tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach. One służą w operacjach w skryptach {{lpg|JavaScript}}.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - Tworzenie i wydobywania coś z sekcji ===
Funkcje do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe, a nawet według szablonu {{s|HNumer}}. Funkcje tworzące nagłowki o dowolnym poziomie, raz jako nagłówki dodatnie równaniowo, a za innym razem według znaczników nagłówków, albo tylko według znaczników nagłówków. Funkcje są tam od wydzielania z nagłówka samego napisu wprowadzenia tekstu, tzn. jego zawartość. Funkcje wykrywające, czy w nim są rozdziały dodatnie rówaniowo, czy pozycje listy.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - Modyfikacje elementów w celu uzyskania lepszego formatu ===
Funkcje do modyfikacji analizowanej strony do lepszego formatu, by później łatwo dało się ją parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne. One sprawdzają, czy w nich są szablony, które muszą być w spisie, któryś przynajmniej z nich, ale nie zawsze. Funkcje sparwdzające, czy w nich są specjalne obiekty. Czy szablony mają odpowiednie nazwy według szablonów kompletowania. Funkcje usuwające kolejne spacje i dolne myślniki zamieniając je na jedną spacje. Funkcje wydzielające z wnętrza szablonu ich odpowiednią zawartość, według ściśle okreslonej procedury. Funkcje tworzące elementy według wzoru. Fukcje zamieniające znaczniki i szablony, nowej linii i kresek, na kolejno na znaki nowej linii. Funkcje do integracji tekstu.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - Parsowanie innych linii niż rozdziały dodatnie równaniowo ===
Funkcje do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, o analizowanych liniach, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - Zbieranie informacji o sekcjach i ich tekstach rozdziałów ===
Funkcje do skladania, upraszczania ich oraz zbierania informacji o rozdziałach i ich tekstach rozdziałów (w tym ich modyfikacji i tworzeniu), i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
l69c1ccqihxnmv224t72hg47fljwww5
557970
557965
2026-09-29T09:31:30Z
Persino
2851
/* Funkcje bazy */
557970
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}}}},
*** Rozdziały sztucznego napisu wprowadzenia tekstu, dla szablonów takich jak: {{s|HNumer}}, gdzie jego parametr pierwszy, to zwykły anormalny rozdział dodatni równaniowy, nawet z niedozwoloną liczbą równa się po obu stronach,
* 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|p=StronicowyParser/Rozdziały/Tom II}}}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) | _1 = Tekst przeważnie zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje.
| 2 = {{Code|szablon}} {{Patrz|szablon}} {{ZobaczTeż|szablon}} | _2 = 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.
| 3 = {{Code|pelna_nazwa_spisu_tresci}} {{Patrz|pelna_nazwa_spisu_tresci}} | _3 = Uchwyt tabeli, zwykle równy adresowi strony, z zawartością, którego bazujemy, ale nie zawsze, bazy kodów wewnątrz pamięci: {{Code|{{m|Szablonowe}}}}, gdy zmienna: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jest równa wartości: {{Code|nil}}.
| 4 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} | _4 = Pełna nazwa strony szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
}}
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tabela parametrów szablonu. Parametry nienazwane są w postaci mają klucze w postaci liczb całkowitych, nie łańcuchów znakowych, a te liczby nie mogą mieć na początku zera, ani znaku: {{Code|+}}, ale za może mieć: {{Code|-}}. A inne parametry są o kluczach nazwanych. Wartości tych parametrów są łańcuchami znakowymi.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = Nazwa szablonu, w wersji szablonowej, czyli nazwa ta jest bez przestrzeni nazw: {{Np|Template|link=tak}}, a w przypadku przestrzeni nazw: {{Np|(main)|link=tak}}, jest on z dwukropkiem, dla odróżnienia z nazwą szablonową dla specjalnie szablonów, a dla innych przestrzeni nazwy stron są równe ich pełnym nazwą strony.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela jego modyfikatorów uruchomień szablonów ich w wywołaniach. Pełna tabela modyfikatorów znajduje się w kodzie: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{Code|{{ld2|Szablonowe/dane}}}}.
}}
==== Zmienne znacznikowe: '''{{lpg|HTML}}''' i mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' ====
{{OpisParametrów
| 1 = {{Code|nazwa}} {{Patrz|nazwa}} | _1 = Nazwa znacznika, napisana małymi literami.
| 2 = {{Code|zawartosc}} {{Patrz|zawartosc}} | _2 = Zawartość znacznika, pomiędzy tagami.
| 3 = {{Code|atrybuty}} {{Patrz|atrybuty}} | _3 = Atrybuty znacznika, w tagach.
}}
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
{{OpisParametrów
| 1 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _1 = 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}}}}.
| 2 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _2 = Tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne.
| 3 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _3 = Tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
}}
===== Inne elementy bazy =====
{{OpisParametrów
| 1 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _1 = 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 ====
{{OpisParametrów
| 1 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} | _1 = Funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
| 2 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _2 = funkcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
}}
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}} {{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} | _1 = Funkcja służąca do kodowania i modyfikowania tekstu, zastępując w nim elementy ich kodami, tworząc tablicę kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, wewnątrz funkcji, przy pomocy uchwytu: {{Code|pelna_nazwa_spisu_tresci}}, lub bezpośrednio podając tą tabelę do funkcji. Elementy zbazowanego tekstu są umieszczane w tej tabeli.
| 2 = {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} | _2 = Służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych. Przy podanym uchwycie lub tabeli potrzebnej: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}.
| 3 = {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} | _3 = 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 =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} | _1 = Funkcja do analizowania linków zwykłych wewnętrznych i zewnętrznych oraz linków, tzw. inteligentnych.
}}
==== Elementy bazy ====
{{OpisParametrów
| 1 = {{Code|szablon}} {{LinkPatrz|szablon}} {{LinkZobaczTeż|szablon}} | _1 = Wnętrze, też zakodowane, obiektu kodowanego o typie {{LinkPatrz|obiekt}} i numerze {{LinkPatrz|kod}}.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Parametr, w postaci łańcucha znakowego typu elementu w kodzie.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = 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 ====
{{OpisParametrów
| 1 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _1 = te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
| 2 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _2 = 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}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje.
{{Hr}}
{{Kolumny|2|2=
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - Operacje na sekcjach ===
Funkcje do uzyskiwania informacji o sekcji, w tym o jej numerze, i jej tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach. One służą w operacjach w skryptach {{lpg|JavaScript}}.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - Tworzenie i wydobywania coś z sekcji ===
Funkcje do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe, a nawet według szablonu {{s|HNumer}}. Funkcje tworzące nagłowki o dowolnym poziomie, raz jako nagłówki dodatnie równaniowo, a za innym razem według znaczników nagłówków, albo tylko według znaczników nagłówków. Funkcje są tam od wydzielania z nagłówka samego napisu wprowadzenia tekstu, tzn. jego zawartość. Funkcje wykrywające, czy w nim są rozdziały dodatnie rówaniowo, czy pozycje listy.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - Modyfikacje elementów w celu uzyskania lepszego formatu ===
Funkcje do modyfikacji analizowanej strony do lepszego formatu, by później łatwo dało się ją parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne. One sprawdzają, czy w nich są szablony, które muszą być w spisie, któryś przynajmniej z nich, ale nie zawsze. Funkcje sparwdzające, czy w nich są specjalne obiekty. Czy szablony mają odpowiednie nazwy według szablonów kompletowania. Funkcje usuwające kolejne spacje i dolne myślniki zamieniając je na jedną spacje. Funkcje wydzielające z wnętrza szablonu ich odpowiednią zawartość, według ściśle okreslonej procedury. Funkcje tworzące elementy według wzoru. Fukcje zamieniające znaczniki i szablony, nowej linii i kresek, na kolejno na znaki nowej linii. Funkcje do integracji tekstu.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - Parsowanie innych linii niż rozdziały dodatnie równaniowo ===
Funkcje do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, o analizowanych liniach, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - Zbieranie informacji o sekcjach i ich tekstach rozdziałów ===
Funkcje do skladania, upraszczania ich oraz zbierania informacji o rozdziałach i ich tekstach rozdziałów (w tym ich modyfikacji i tworzeniu), i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
930l2cia04shvpycdnebfzgc7etqhhl
557971
557970
2026-09-29T09:32:37Z
Persino
2851
/* Elementy bazy */
557971
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}}}},
*** Rozdziały sztucznego napisu wprowadzenia tekstu, dla szablonów takich jak: {{s|HNumer}}, gdzie jego parametr pierwszy, to zwykły anormalny rozdział dodatni równaniowy, nawet z niedozwoloną liczbą równa się po obu stronach,
* 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|p=StronicowyParser/Rozdziały/Tom II}}}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) | _1 = Tekst przeważnie zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje.
| 2 = {{Code|szablon}} {{Patrz|szablon}} {{ZobaczTeż|szablon}} | _2 = 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.
| 3 = {{Code|pelna_nazwa_spisu_tresci}} {{Patrz|pelna_nazwa_spisu_tresci}} | _3 = Uchwyt tabeli, zwykle równy adresowi strony, z zawartością, którego bazujemy, ale nie zawsze, bazy kodów wewnątrz pamięci: {{Code|{{m|Szablonowe}}}}, gdy zmienna: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jest równa wartości: {{Code|nil}}.
| 4 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} | _4 = Pełna nazwa strony szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
}}
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tabela parametrów szablonu. Parametry nienazwane są w postaci mają klucze w postaci liczb całkowitych, nie łańcuchów znakowych, a te liczby nie mogą mieć na początku zera, ani znaku: {{Code|+}}, ale za może mieć: {{Code|-}}. A inne parametry są o kluczach nazwanych. Wartości tych parametrów są łańcuchami znakowymi.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = Nazwa szablonu, w wersji szablonowej, czyli nazwa ta jest bez przestrzeni nazw: {{Np|Template|link=tak}}, a w przypadku przestrzeni nazw: {{Np|(main)|link=tak}}, jest on z dwukropkiem, dla odróżnienia z nazwą szablonową dla specjalnie szablonów, a dla innych przestrzeni nazwy stron są równe ich pełnym nazwą strony.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela jego modyfikatorów uruchomień szablonów ich w wywołaniach. Pełna tabela modyfikatorów znajduje się w kodzie: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{Code|{{ld2|Szablonowe/dane}}}}.
}}
==== Zmienne znacznikowe: '''{{lpg|HTML}}''' i mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' ====
{{OpisParametrów
| 1 = {{Code|nazwa}} {{Patrz|nazwa}} | _1 = Nazwa znacznika, napisana małymi literami.
| 2 = {{Code|zawartosc}} {{Patrz|zawartosc}} | _2 = Zawartość znacznika, pomiędzy tagami.
| 3 = {{Code|atrybuty}} {{Patrz|atrybuty}} | _3 = Atrybuty znacznika, w tagach.
}}
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
{{OpisParametrów
| 1 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _1 = 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}}}}.
| 2 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _2 = Tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne.
| 3 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _3 = Tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
}}
===== Inne elementy bazy =====
{{OpisParametrów
| 1 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _1 = 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 ====
{{OpisParametrów
| 1 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} | _1 = Funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
| 2 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _2 = funkcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
}}
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}} {{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} | _1 = Funkcja służąca do kodowania i modyfikowania tekstu, zastępując w nim elementy ich kodami, tworząc tablicę kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, wewnątrz funkcji, przy pomocy uchwytu: {{Code|pelna_nazwa_spisu_tresci}}, lub bezpośrednio podając tą tabelę do funkcji. Elementy zbazowanego tekstu są umieszczane w tej tabeli.
| 2 = {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} | _2 = Służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych. Przy podanym uchwycie lub tabeli potrzebnej: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}.
| 3 = {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} | _3 = 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 =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} | _1 = Funkcja do analizowania linków zwykłych wewnętrznych i zewnętrznych oraz linków, tzw. inteligentnych.
}}
==== Elementy bazy ====
{{OpisParametrów
| 1 = {{Code|szablon}} {{LinkPatrz|szablon}} | _1 = Wnętrze {{LinkZobaczTeż|szablon}}, też zakodowane, obiektu kodowanego o typie {{LinkPatrz|obiekt}} i numerze {{LinkPatrz|kod}}.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Parametr, w postaci łańcucha znakowego typu elementu w kodzie.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = 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 ====
{{OpisParametrów
| 1 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _1 = te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
| 2 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _2 = 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}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje.
{{Hr}}
{{Kolumny|2|2=
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - Operacje na sekcjach ===
Funkcje do uzyskiwania informacji o sekcji, w tym o jej numerze, i jej tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach. One służą w operacjach w skryptach {{lpg|JavaScript}}.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - Tworzenie i wydobywania coś z sekcji ===
Funkcje do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe, a nawet według szablonu {{s|HNumer}}. Funkcje tworzące nagłowki o dowolnym poziomie, raz jako nagłówki dodatnie równaniowo, a za innym razem według znaczników nagłówków, albo tylko według znaczników nagłówków. Funkcje są tam od wydzielania z nagłówka samego napisu wprowadzenia tekstu, tzn. jego zawartość. Funkcje wykrywające, czy w nim są rozdziały dodatnie rówaniowo, czy pozycje listy.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - Modyfikacje elementów w celu uzyskania lepszego formatu ===
Funkcje do modyfikacji analizowanej strony do lepszego formatu, by później łatwo dało się ją parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne. One sprawdzają, czy w nich są szablony, które muszą być w spisie, któryś przynajmniej z nich, ale nie zawsze. Funkcje sparwdzające, czy w nich są specjalne obiekty. Czy szablony mają odpowiednie nazwy według szablonów kompletowania. Funkcje usuwające kolejne spacje i dolne myślniki zamieniając je na jedną spacje. Funkcje wydzielające z wnętrza szablonu ich odpowiednią zawartość, według ściśle okreslonej procedury. Funkcje tworzące elementy według wzoru. Fukcje zamieniające znaczniki i szablony, nowej linii i kresek, na kolejno na znaki nowej linii. Funkcje do integracji tekstu.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - Parsowanie innych linii niż rozdziały dodatnie równaniowo ===
Funkcje do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, o analizowanych liniach, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - Zbieranie informacji o sekcjach i ich tekstach rozdziałów ===
Funkcje do skladania, upraszczania ich oraz zbierania informacji o rozdziałach i ich tekstach rozdziałów (w tym ich modyfikacji i tworzeniu), i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
k1zceov9jr4pow2zvjtwo5nd1wlfjnq
557972
557971
2026-09-29T09:33:18Z
Persino
2851
/* Zmienne bazy */
557972
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}}}},
*** Rozdziały sztucznego napisu wprowadzenia tekstu, dla szablonów takich jak: {{s|HNumer}}, gdzie jego parametr pierwszy, to zwykły anormalny rozdział dodatni równaniowy, nawet z niedozwoloną liczbą równa się po obu stronach,
* 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|p=StronicowyParser/Rozdziały/Tom II}}}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) | _1 = Tekst przeważnie zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje.
| 2 = {{Code|szablon}} {{Patrz|szablon}} | _2 = Zakodowany {{ZobaczTeż|szablon}} 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.
| 3 = {{Code|pelna_nazwa_spisu_tresci}} {{Patrz|pelna_nazwa_spisu_tresci}} | _3 = Uchwyt tabeli, zwykle równy adresowi strony, z zawartością, którego bazujemy, ale nie zawsze, bazy kodów wewnątrz pamięci: {{Code|{{m|Szablonowe}}}}, gdy zmienna: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jest równa wartości: {{Code|nil}}.
| 4 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} | _4 = Pełna nazwa strony szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
}}
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tabela parametrów szablonu. Parametry nienazwane są w postaci mają klucze w postaci liczb całkowitych, nie łańcuchów znakowych, a te liczby nie mogą mieć na początku zera, ani znaku: {{Code|+}}, ale za może mieć: {{Code|-}}. A inne parametry są o kluczach nazwanych. Wartości tych parametrów są łańcuchami znakowymi.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = Nazwa szablonu, w wersji szablonowej, czyli nazwa ta jest bez przestrzeni nazw: {{Np|Template|link=tak}}, a w przypadku przestrzeni nazw: {{Np|(main)|link=tak}}, jest on z dwukropkiem, dla odróżnienia z nazwą szablonową dla specjalnie szablonów, a dla innych przestrzeni nazwy stron są równe ich pełnym nazwą strony.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela jego modyfikatorów uruchomień szablonów ich w wywołaniach. Pełna tabela modyfikatorów znajduje się w kodzie: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{Code|{{ld2|Szablonowe/dane}}}}.
}}
==== Zmienne znacznikowe: '''{{lpg|HTML}}''' i mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' ====
{{OpisParametrów
| 1 = {{Code|nazwa}} {{Patrz|nazwa}} | _1 = Nazwa znacznika, napisana małymi literami.
| 2 = {{Code|zawartosc}} {{Patrz|zawartosc}} | _2 = Zawartość znacznika, pomiędzy tagami.
| 3 = {{Code|atrybuty}} {{Patrz|atrybuty}} | _3 = Atrybuty znacznika, w tagach.
}}
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
{{OpisParametrów
| 1 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _1 = 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}}}}.
| 2 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _2 = Tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne.
| 3 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _3 = Tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
}}
===== Inne elementy bazy =====
{{OpisParametrów
| 1 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _1 = 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 ====
{{OpisParametrów
| 1 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} | _1 = Funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
| 2 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _2 = funkcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
}}
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}} {{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} | _1 = Funkcja służąca do kodowania i modyfikowania tekstu, zastępując w nim elementy ich kodami, tworząc tablicę kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, wewnątrz funkcji, przy pomocy uchwytu: {{Code|pelna_nazwa_spisu_tresci}}, lub bezpośrednio podając tą tabelę do funkcji. Elementy zbazowanego tekstu są umieszczane w tej tabeli.
| 2 = {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} | _2 = Służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych. Przy podanym uchwycie lub tabeli potrzebnej: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}.
| 3 = {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} | _3 = 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 =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} | _1 = Funkcja do analizowania linków zwykłych wewnętrznych i zewnętrznych oraz linków, tzw. inteligentnych.
}}
==== Elementy bazy ====
{{OpisParametrów
| 1 = {{Code|szablon}} {{LinkPatrz|szablon}} | _1 = Wnętrze {{LinkZobaczTeż|szablon}}, też zakodowane, obiektu kodowanego o typie {{LinkPatrz|obiekt}} i numerze {{LinkPatrz|kod}}.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Parametr, w postaci łańcucha znakowego typu elementu w kodzie.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = 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 ====
{{OpisParametrów
| 1 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _1 = te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
| 2 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _2 = 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}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje.
{{Hr}}
{{Kolumny|2|2=
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - Operacje na sekcjach ===
Funkcje do uzyskiwania informacji o sekcji, w tym o jej numerze, i jej tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach. One służą w operacjach w skryptach {{lpg|JavaScript}}.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - Tworzenie i wydobywania coś z sekcji ===
Funkcje do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe, a nawet według szablonu {{s|HNumer}}. Funkcje tworzące nagłowki o dowolnym poziomie, raz jako nagłówki dodatnie równaniowo, a za innym razem według znaczników nagłówków, albo tylko według znaczników nagłówków. Funkcje są tam od wydzielania z nagłówka samego napisu wprowadzenia tekstu, tzn. jego zawartość. Funkcje wykrywające, czy w nim są rozdziały dodatnie rówaniowo, czy pozycje listy.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - Modyfikacje elementów w celu uzyskania lepszego formatu ===
Funkcje do modyfikacji analizowanej strony do lepszego formatu, by później łatwo dało się ją parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne. One sprawdzają, czy w nich są szablony, które muszą być w spisie, któryś przynajmniej z nich, ale nie zawsze. Funkcje sparwdzające, czy w nich są specjalne obiekty. Czy szablony mają odpowiednie nazwy według szablonów kompletowania. Funkcje usuwające kolejne spacje i dolne myślniki zamieniając je na jedną spacje. Funkcje wydzielające z wnętrza szablonu ich odpowiednią zawartość, według ściśle okreslonej procedury. Funkcje tworzące elementy według wzoru. Fukcje zamieniające znaczniki i szablony, nowej linii i kresek, na kolejno na znaki nowej linii. Funkcje do integracji tekstu.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - Parsowanie innych linii niż rozdziały dodatnie równaniowo ===
Funkcje do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, o analizowanych liniach, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - Zbieranie informacji o sekcjach i ich tekstach rozdziałów ===
Funkcje do skladania, upraszczania ich oraz zbierania informacji o rozdziałach i ich tekstach rozdziałów (w tym ich modyfikacji i tworzeniu), i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
43v36hn8x1jln3o8nuyfwta5qfflp8n
557973
557972
2026-09-29T09:46:35Z
Persino
2851
/* Funkcje bazy danych i do nich parametrów */
557973
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}}}},
*** Rozdziały sztucznego napisu wprowadzenia tekstu, dla szablonów takich jak: {{s|HNumer}}, gdzie jego parametr pierwszy, to zwykły anormalny rozdział dodatni równaniowy, nawet z niedozwoloną liczbą równa się po obu stronach,
* 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|p=StronicowyParser/Rozdziały/Tom II}}}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) | _1 = Tekst przeważnie zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje.
| 2 = {{Code|szablon}} {{Patrz|szablon}} | _2 = Zakodowany {{ZobaczTeż|szablon}} 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.
| 3 = {{Code|pelna_nazwa_spisu_tresci}} {{Patrz|pelna_nazwa_spisu_tresci}} | _3 = Uchwyt tabeli, zwykle równy adresowi strony, z zawartością, którego bazujemy, ale nie zawsze, bazy kodów wewnątrz pamięci: {{Code|{{m|Szablonowe}}}}, gdy zmienna: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jest równa wartości: {{Code|nil}}.
| 4 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} | _4 = Pełna nazwa strony szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
}}
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tabela parametrów szablonu. Parametry nienazwane są w postaci mają klucze w postaci liczb całkowitych, nie łańcuchów znakowych, a te liczby nie mogą mieć na początku zera, ani znaku: {{Code|+}}, ale za może mieć: {{Code|-}}. A inne parametry są o kluczach nazwanych. Wartości tych parametrów są łańcuchami znakowymi.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = Nazwa szablonu, w wersji szablonowej, czyli nazwa ta jest bez przestrzeni nazw: {{Np|Template|link=tak}}, a w przypadku przestrzeni nazw: {{Np|(main)|link=tak}}, jest on z dwukropkiem, dla odróżnienia z nazwą szablonową dla specjalnie szablonów, a dla innych przestrzeni nazwy stron są równe ich pełnym nazwą strony.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela jego modyfikatorów uruchomień szablonów ich w wywołaniach. Pełna tabela modyfikatorów znajduje się w kodzie: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{Code|{{ld2|Szablonowe/dane}}}}.
}}
==== Zmienne znacznikowe: '''{{lpg|HTML}}''' i mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' ====
{{OpisParametrów
| 1 = {{Code|nazwa}} {{Patrz|nazwa}} | _1 = Nazwa znacznika, napisana małymi literami.
| 2 = {{Code|zawartosc}} {{Patrz|zawartosc}} | _2 = Zawartość znacznika, pomiędzy tagami.
| 3 = {{Code|atrybuty}} {{Patrz|atrybuty}} | _3 = Atrybuty znacznika, w tagach.
}}
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
{{OpisParametrów
| 1 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _1 = 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}}}}.
| 2 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _2 = Tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne.
| 3 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _3 = Tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
}}
===== Inne elementy bazy =====
{{OpisParametrów
| 1 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _1 = 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 ====
{{OpisParametrów
| 1 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} | _1 = Funkcja, która usuwa elementy w tablicy: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, o danym kodzie, przyporządkowanym danej funkcji, i kodzie numeru danego obiektu: {{Code|obiekt}} {{LinkPatrz|obiekt}}, czyli: {{Code|kod}} {{LinkPatrz|kod}}.
| 2 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _2 = Funkcja, która usuwa elementy, i w ich powiązanych metatablicach, w tablicy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
}}
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}} {{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} | _1 = Funkcja służąca do kodowania i modyfikowania tekstu, zastępując w nim elementy ich kodami, tworząc tablicę kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, wewnątrz funkcji, przy pomocy uchwytu: {{Code|pelna_nazwa_spisu_tresci}}, lub bezpośrednio podając tą tabelę do funkcji. Elementy zbazowanego tekstu są umieszczane w tej tabeli.
| 2 = {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} | _2 = Służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych. Przy podanym uchwycie lub tabeli potrzebnej: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}.
| 3 = {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} | _3 = 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 =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} | _1 = Funkcja do analizowania linków zwykłych wewnętrznych i zewnętrznych oraz linków, tzw. inteligentnych.
}}
==== Elementy bazy ====
{{OpisParametrów
| 1 = {{Code|szablon}} {{LinkPatrz|szablon}} | _1 = Wnętrze {{LinkZobaczTeż|szablon}}, też zakodowane, obiektu kodowanego o typie {{LinkPatrz|obiekt}} i numerze {{LinkPatrz|kod}}.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Parametr, w postaci łańcucha znakowego typu elementu w kodzie.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = 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 ====
{{OpisParametrów
| 1 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _1 = te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
| 2 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _2 = 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}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje.
{{Hr}}
{{Kolumny|2|2=
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - Operacje na sekcjach ===
Funkcje do uzyskiwania informacji o sekcji, w tym o jej numerze, i jej tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach. One służą w operacjach w skryptach {{lpg|JavaScript}}.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - Tworzenie i wydobywania coś z sekcji ===
Funkcje do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe, a nawet według szablonu {{s|HNumer}}. Funkcje tworzące nagłowki o dowolnym poziomie, raz jako nagłówki dodatnie równaniowo, a za innym razem według znaczników nagłówków, albo tylko według znaczników nagłówków. Funkcje są tam od wydzielania z nagłówka samego napisu wprowadzenia tekstu, tzn. jego zawartość. Funkcje wykrywające, czy w nim są rozdziały dodatnie rówaniowo, czy pozycje listy.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - Modyfikacje elementów w celu uzyskania lepszego formatu ===
Funkcje do modyfikacji analizowanej strony do lepszego formatu, by później łatwo dało się ją parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne. One sprawdzają, czy w nich są szablony, które muszą być w spisie, któryś przynajmniej z nich, ale nie zawsze. Funkcje sparwdzające, czy w nich są specjalne obiekty. Czy szablony mają odpowiednie nazwy według szablonów kompletowania. Funkcje usuwające kolejne spacje i dolne myślniki zamieniając je na jedną spacje. Funkcje wydzielające z wnętrza szablonu ich odpowiednią zawartość, według ściśle okreslonej procedury. Funkcje tworzące elementy według wzoru. Fukcje zamieniające znaczniki i szablony, nowej linii i kresek, na kolejno na znaki nowej linii. Funkcje do integracji tekstu.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - Parsowanie innych linii niż rozdziały dodatnie równaniowo ===
Funkcje do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, o analizowanych liniach, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - Zbieranie informacji o sekcjach i ich tekstach rozdziałów ===
Funkcje do skladania, upraszczania ich oraz zbierania informacji o rozdziałach i ich tekstach rozdziałów (w tym ich modyfikacji i tworzeniu), i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
47kor3bqzqfp2lzt9nfoj4p3ceicg1n
557974
557973
2026-09-29T09:48:37Z
Persino
2851
/* Funkcje bazy danych i do nich parametrów */
557974
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}}}},
*** Rozdziały sztucznego napisu wprowadzenia tekstu, dla szablonów takich jak: {{s|HNumer}}, gdzie jego parametr pierwszy, to zwykły anormalny rozdział dodatni równaniowy, nawet z niedozwoloną liczbą równa się po obu stronach,
* 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|p=StronicowyParser/Rozdziały/Tom II}}}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) | _1 = Tekst przeważnie zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje.
| 2 = {{Code|szablon}} {{Patrz|szablon}} | _2 = Zakodowany {{ZobaczTeż|szablon}} 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.
| 3 = {{Code|pelna_nazwa_spisu_tresci}} {{Patrz|pelna_nazwa_spisu_tresci}} | _3 = Uchwyt tabeli, zwykle równy adresowi strony, z zawartością, którego bazujemy, ale nie zawsze, bazy kodów wewnątrz pamięci: {{Code|{{m|Szablonowe}}}}, gdy zmienna: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jest równa wartości: {{Code|nil}}.
| 4 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} | _4 = Pełna nazwa strony szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
}}
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tabela parametrów szablonu. Parametry nienazwane są w postaci mają klucze w postaci liczb całkowitych, nie łańcuchów znakowych, a te liczby nie mogą mieć na początku zera, ani znaku: {{Code|+}}, ale za może mieć: {{Code|-}}. A inne parametry są o kluczach nazwanych. Wartości tych parametrów są łańcuchami znakowymi.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = Nazwa szablonu, w wersji szablonowej, czyli nazwa ta jest bez przestrzeni nazw: {{Np|Template|link=tak}}, a w przypadku przestrzeni nazw: {{Np|(main)|link=tak}}, jest on z dwukropkiem, dla odróżnienia z nazwą szablonową dla specjalnie szablonów, a dla innych przestrzeni nazwy stron są równe ich pełnym nazwą strony.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela jego modyfikatorów uruchomień szablonów ich w wywołaniach. Pełna tabela modyfikatorów znajduje się w kodzie: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{Code|{{ld2|Szablonowe/dane}}}}.
}}
==== Zmienne znacznikowe: '''{{lpg|HTML}}''' i mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' ====
{{OpisParametrów
| 1 = {{Code|nazwa}} {{Patrz|nazwa}} | _1 = Nazwa znacznika, napisana małymi literami.
| 2 = {{Code|zawartosc}} {{Patrz|zawartosc}} | _2 = Zawartość znacznika, pomiędzy tagami.
| 3 = {{Code|atrybuty}} {{Patrz|atrybuty}} | _3 = Atrybuty znacznika, w tagach.
}}
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
{{OpisParametrów
| 1 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _1 = 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}}}}.
| 2 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _2 = Tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne.
| 3 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _3 = Tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
}}
===== Inne elementy bazy =====
{{OpisParametrów
| 1 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _1 = 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 ====
{{OpisParametrów
| 1 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} | _1 = Funkcja, która usuwa elementy w tablicy: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, o danym kodzie, przyporządkowanym danej funkcji, i kodzie numeru danego obiektu: {{Code|obiekt}} {{LinkPatrz|obiekt}}, czyli: {{Code|kod}} {{LinkPatrz|kod}}.
| 2 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _2 = Funkcja, która usuwa elementy, i w ich powiązanych metatablicach, w tablicy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, o danym typie, obiekcie: {{Code|obiekt}} {{LinkPatrz|obiekt}}, i numerze w nim: {{Code|kod}} {{LinkPatrz|kod}}.
}}
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}} {{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} | _1 = Funkcja służąca do kodowania i modyfikowania tekstu, zastępując w nim elementy ich kodami, tworząc tablicę kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, wewnątrz funkcji, przy pomocy uchwytu: {{Code|pelna_nazwa_spisu_tresci}}, lub bezpośrednio podając tą tabelę do funkcji. Elementy zbazowanego tekstu są umieszczane w tej tabeli.
| 2 = {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} | _2 = Służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych. Przy podanym uchwycie lub tabeli potrzebnej: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}.
| 3 = {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} | _3 = 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 =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} | _1 = Funkcja do analizowania linków zwykłych wewnętrznych i zewnętrznych oraz linków, tzw. inteligentnych.
}}
==== Elementy bazy ====
{{OpisParametrów
| 1 = {{Code|szablon}} {{LinkPatrz|szablon}} | _1 = Wnętrze {{LinkZobaczTeż|szablon}}, też zakodowane, obiektu kodowanego o typie {{LinkPatrz|obiekt}} i numerze {{LinkPatrz|kod}}.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Parametr, w postaci łańcucha znakowego typu elementu w kodzie.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = 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 ====
{{OpisParametrów
| 1 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _1 = te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
| 2 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _2 = 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}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje.
{{Hr}}
{{Kolumny|2|2=
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - Operacje na sekcjach ===
Funkcje do uzyskiwania informacji o sekcji, w tym o jej numerze, i jej tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach. One służą w operacjach w skryptach {{lpg|JavaScript}}.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - Tworzenie i wydobywania coś z sekcji ===
Funkcje do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe, a nawet według szablonu {{s|HNumer}}. Funkcje tworzące nagłowki o dowolnym poziomie, raz jako nagłówki dodatnie równaniowo, a za innym razem według znaczników nagłówków, albo tylko według znaczników nagłówków. Funkcje są tam od wydzielania z nagłówka samego napisu wprowadzenia tekstu, tzn. jego zawartość. Funkcje wykrywające, czy w nim są rozdziały dodatnie rówaniowo, czy pozycje listy.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - Modyfikacje elementów w celu uzyskania lepszego formatu ===
Funkcje do modyfikacji analizowanej strony do lepszego formatu, by później łatwo dało się ją parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne. One sprawdzają, czy w nich są szablony, które muszą być w spisie, któryś przynajmniej z nich, ale nie zawsze. Funkcje sparwdzające, czy w nich są specjalne obiekty. Czy szablony mają odpowiednie nazwy według szablonów kompletowania. Funkcje usuwające kolejne spacje i dolne myślniki zamieniając je na jedną spacje. Funkcje wydzielające z wnętrza szablonu ich odpowiednią zawartość, według ściśle okreslonej procedury. Funkcje tworzące elementy według wzoru. Fukcje zamieniające znaczniki i szablony, nowej linii i kresek, na kolejno na znaki nowej linii. Funkcje do integracji tekstu.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - Parsowanie innych linii niż rozdziały dodatnie równaniowo ===
Funkcje do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, o analizowanych liniach, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - Zbieranie informacji o sekcjach i ich tekstach rozdziałów ===
Funkcje do skladania, upraszczania ich oraz zbierania informacji o rozdziałach i ich tekstach rozdziałów (w tym ich modyfikacji i tworzeniu), i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
7988uursbj36vgf9tiks0ulphdfb7zf
557975
557974
2026-09-29T09:52:41Z
Persino
2851
/* Zmienne znacznikowe: {{lpg|HTML}} i mechanizmu {{NS|k=mw|w=tak|l=tak}} */
557975
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}}}},
*** Rozdziały sztucznego napisu wprowadzenia tekstu, dla szablonów takich jak: {{s|HNumer}}, gdzie jego parametr pierwszy, to zwykły anormalny rozdział dodatni równaniowy, nawet z niedozwoloną liczbą równa się po obu stronach,
* 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|p=StronicowyParser/Rozdziały/Tom II}}}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) | _1 = Tekst przeważnie zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje.
| 2 = {{Code|szablon}} {{Patrz|szablon}} | _2 = Zakodowany {{ZobaczTeż|szablon}} 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.
| 3 = {{Code|pelna_nazwa_spisu_tresci}} {{Patrz|pelna_nazwa_spisu_tresci}} | _3 = Uchwyt tabeli, zwykle równy adresowi strony, z zawartością, którego bazujemy, ale nie zawsze, bazy kodów wewnątrz pamięci: {{Code|{{m|Szablonowe}}}}, gdy zmienna: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jest równa wartości: {{Code|nil}}.
| 4 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} | _4 = Pełna nazwa strony szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
}}
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tabela parametrów szablonu. Parametry nienazwane są w postaci mają klucze w postaci liczb całkowitych, nie łańcuchów znakowych, a te liczby nie mogą mieć na początku zera, ani znaku: {{Code|+}}, ale za może mieć: {{Code|-}}. A inne parametry są o kluczach nazwanych. Wartości tych parametrów są łańcuchami znakowymi.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = Nazwa szablonu, w wersji szablonowej, czyli nazwa ta jest bez przestrzeni nazw: {{Np|Template|link=tak}}, a w przypadku przestrzeni nazw: {{Np|(main)|link=tak}}, jest on z dwukropkiem, dla odróżnienia z nazwą szablonową dla specjalnie szablonów, a dla innych przestrzeni nazwy stron są równe ich pełnym nazwą strony.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela jego modyfikatorów uruchomień szablonów ich w wywołaniach. Pełna tabela modyfikatorów znajduje się w kodzie: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{Code|{{ld2|Szablonowe/dane}}}}.
}}
==== Zmienne znacznikowe: '''{{lpg|HTML}}''' i mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' ====
{{OpisParametrów
| 1 = {{Code|nazwa}} {{Patrz|nazwa}} | _1 = Nazwa znacznika, napisana małymi literami, nie może zaczynać się od cyfry, ani nie może mieć w sobie żadnych odstępów.
| 2 = {{Code|zawartosc}} {{Patrz|zawartosc}} | _2 = Zawartość znacznika, pomiędzy tagami.
| 3 = {{Code|atrybuty}} {{Patrz|atrybuty}} | _3 = Tabela z atrybutami znacznika, w tagach. Kluczami tej tabeli są nazwy tych atrybutów, a wartościami, są wartości atrybutów o pewnych nazwach.
}}
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
{{OpisParametrów
| 1 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _1 = 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}}}}.
| 2 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _2 = Tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne.
| 3 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _3 = Tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
}}
===== Inne elementy bazy =====
{{OpisParametrów
| 1 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _1 = 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 ====
{{OpisParametrów
| 1 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} | _1 = Funkcja, która usuwa elementy w tablicy: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, o danym kodzie, przyporządkowanym danej funkcji, i kodzie numeru danego obiektu: {{Code|obiekt}} {{LinkPatrz|obiekt}}, czyli: {{Code|kod}} {{LinkPatrz|kod}}.
| 2 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _2 = Funkcja, która usuwa elementy, i w ich powiązanych metatablicach, w tablicy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, o danym typie, obiekcie: {{Code|obiekt}} {{LinkPatrz|obiekt}}, i numerze w nim: {{Code|kod}} {{LinkPatrz|kod}}.
}}
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}} {{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} | _1 = Funkcja służąca do kodowania i modyfikowania tekstu, zastępując w nim elementy ich kodami, tworząc tablicę kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, wewnątrz funkcji, przy pomocy uchwytu: {{Code|pelna_nazwa_spisu_tresci}}, lub bezpośrednio podając tą tabelę do funkcji. Elementy zbazowanego tekstu są umieszczane w tej tabeli.
| 2 = {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} | _2 = Służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych. Przy podanym uchwycie lub tabeli potrzebnej: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}.
| 3 = {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} | _3 = 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 =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} | _1 = Funkcja do analizowania linków zwykłych wewnętrznych i zewnętrznych oraz linków, tzw. inteligentnych.
}}
==== Elementy bazy ====
{{OpisParametrów
| 1 = {{Code|szablon}} {{LinkPatrz|szablon}} | _1 = Wnętrze {{LinkZobaczTeż|szablon}}, też zakodowane, obiektu kodowanego o typie {{LinkPatrz|obiekt}} i numerze {{LinkPatrz|kod}}.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Parametr, w postaci łańcucha znakowego typu elementu w kodzie.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = 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 ====
{{OpisParametrów
| 1 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _1 = te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
| 2 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _2 = 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}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje.
{{Hr}}
{{Kolumny|2|2=
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - Operacje na sekcjach ===
Funkcje do uzyskiwania informacji o sekcji, w tym o jej numerze, i jej tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach. One służą w operacjach w skryptach {{lpg|JavaScript}}.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - Tworzenie i wydobywania coś z sekcji ===
Funkcje do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe, a nawet według szablonu {{s|HNumer}}. Funkcje tworzące nagłowki o dowolnym poziomie, raz jako nagłówki dodatnie równaniowo, a za innym razem według znaczników nagłówków, albo tylko według znaczników nagłówków. Funkcje są tam od wydzielania z nagłówka samego napisu wprowadzenia tekstu, tzn. jego zawartość. Funkcje wykrywające, czy w nim są rozdziały dodatnie rówaniowo, czy pozycje listy.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - Modyfikacje elementów w celu uzyskania lepszego formatu ===
Funkcje do modyfikacji analizowanej strony do lepszego formatu, by później łatwo dało się ją parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne. One sprawdzają, czy w nich są szablony, które muszą być w spisie, któryś przynajmniej z nich, ale nie zawsze. Funkcje sparwdzające, czy w nich są specjalne obiekty. Czy szablony mają odpowiednie nazwy według szablonów kompletowania. Funkcje usuwające kolejne spacje i dolne myślniki zamieniając je na jedną spacje. Funkcje wydzielające z wnętrza szablonu ich odpowiednią zawartość, według ściśle okreslonej procedury. Funkcje tworzące elementy według wzoru. Fukcje zamieniające znaczniki i szablony, nowej linii i kresek, na kolejno na znaki nowej linii. Funkcje do integracji tekstu.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - Parsowanie innych linii niż rozdziały dodatnie równaniowo ===
Funkcje do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, o analizowanych liniach, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - Zbieranie informacji o sekcjach i ich tekstach rozdziałów ===
Funkcje do skladania, upraszczania ich oraz zbierania informacji o rozdziałach i ich tekstach rozdziałów (w tym ich modyfikacji i tworzeniu), i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0zfq7ij627gkcyta8875o4zv2zddd3r
557976
557975
2026-09-29T09:54:01Z
Persino
2851
/* Zmienne znacznikowe: {{lpg|HTML}} i mechanizmu {{NS|k=mw|w=tak|l=tak}} */
557976
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}}}},
*** Rozdziały sztucznego napisu wprowadzenia tekstu, dla szablonów takich jak: {{s|HNumer}}, gdzie jego parametr pierwszy, to zwykły anormalny rozdział dodatni równaniowy, nawet z niedozwoloną liczbą równa się po obu stronach,
* 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|p=StronicowyParser/Rozdziały/Tom II}}}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) | _1 = Tekst przeważnie zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje.
| 2 = {{Code|szablon}} {{Patrz|szablon}} | _2 = Zakodowany {{ZobaczTeż|szablon}} 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.
| 3 = {{Code|pelna_nazwa_spisu_tresci}} {{Patrz|pelna_nazwa_spisu_tresci}} | _3 = Uchwyt tabeli, zwykle równy adresowi strony, z zawartością, którego bazujemy, ale nie zawsze, bazy kodów wewnątrz pamięci: {{Code|{{m|Szablonowe}}}}, gdy zmienna: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jest równa wartości: {{Code|nil}}.
| 4 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} | _4 = Pełna nazwa strony szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
}}
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tabela parametrów szablonu. Parametry nienazwane są w postaci mają klucze w postaci liczb całkowitych, nie łańcuchów znakowych, a te liczby nie mogą mieć na początku zera, ani znaku: {{Code|+}}, ale za może mieć: {{Code|-}}. A inne parametry są o kluczach nazwanych. Wartości tych parametrów są łańcuchami znakowymi.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = Nazwa szablonu, w wersji szablonowej, czyli nazwa ta jest bez przestrzeni nazw: {{Np|Template|link=tak}}, a w przypadku przestrzeni nazw: {{Np|(main)|link=tak}}, jest on z dwukropkiem, dla odróżnienia z nazwą szablonową dla specjalnie szablonów, a dla innych przestrzeni nazwy stron są równe ich pełnym nazwą strony.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela jego modyfikatorów uruchomień szablonów ich w wywołaniach. Pełna tabela modyfikatorów znajduje się w kodzie: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{Code|{{ld2|Szablonowe/dane}}}}.
}}
==== Zmienne znacznikowe: '''{{lpg|HTML}}''' i mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' ====
{{OpisParametrów
| 1 = {{Code|nazwa}} {{Patrz|nazwa}} | _1 = Nazwa znacznika, napisana małymi literami, nie może zaczynać się od cyfry, ani nie może mieć w sobie żadnych odstępów.
| 2 = {{Code|zawartosc}} {{Patrz|zawartosc}} | _2 = Zawartość znacznika, pomiędzy tagami.
| 3 = {{Code|atrybuty}} {{Patrz|atrybuty}} | _3 = Tabela z atrybutami znacznika, w tagach. Kluczami tej tabeli są nazwy tych atrybutów, a wartościami, są wartości atrybutów o pewnych nazwach. Nazwa taga nie może mieć w sobie żadnych odstępó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 =====
{{OpisParametrów
| 1 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _1 = 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}}}}.
| 2 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _2 = Tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne.
| 3 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _3 = Tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
}}
===== Inne elementy bazy =====
{{OpisParametrów
| 1 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _1 = 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 ====
{{OpisParametrów
| 1 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} | _1 = Funkcja, która usuwa elementy w tablicy: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, o danym kodzie, przyporządkowanym danej funkcji, i kodzie numeru danego obiektu: {{Code|obiekt}} {{LinkPatrz|obiekt}}, czyli: {{Code|kod}} {{LinkPatrz|kod}}.
| 2 = {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} | _2 = Funkcja, która usuwa elementy, i w ich powiązanych metatablicach, w tablicy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, o danym typie, obiekcie: {{Code|obiekt}} {{LinkPatrz|obiekt}}, i numerze w nim: {{Code|kod}} {{LinkPatrz|kod}}.
}}
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}} {{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} | _1 = Funkcja służąca do kodowania i modyfikowania tekstu, zastępując w nim elementy ich kodami, tworząc tablicę kodów: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, wewnątrz funkcji, przy pomocy uchwytu: {{Code|pelna_nazwa_spisu_tresci}}, lub bezpośrednio podając tą tabelę do funkcji. Elementy zbazowanego tekstu są umieszczane w tej tabeli.
| 2 = {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} | _2 = Służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych. Przy podanym uchwycie lub tabeli potrzebnej: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}.
| 3 = {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} | _3 = 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 =====
{{OpisParametrów
| 1 = {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} | _1 = Funkcja do analizowania linków zwykłych wewnętrznych i zewnętrznych oraz linków, tzw. inteligentnych.
}}
==== Elementy bazy ====
{{OpisParametrów
| 1 = {{Code|szablon}} {{LinkPatrz|szablon}} | _1 = Wnętrze {{LinkZobaczTeż|szablon}}, też zakodowane, obiektu kodowanego o typie {{LinkPatrz|obiekt}} i numerze {{LinkPatrz|kod}}.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Parametr, w postaci łańcucha znakowego typu elementu w kodzie.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = 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 ====
{{OpisParametrów
| 1 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _1 = te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
| 2 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _2 = 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}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje.
{{Hr}}
{{Kolumny|2|2=
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - Operacje na sekcjach ===
Funkcje do uzyskiwania informacji o sekcji, w tym o jej numerze, i jej tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach. One służą w operacjach w skryptach {{lpg|JavaScript}}.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - Tworzenie i wydobywania coś z sekcji ===
Funkcje do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe, a nawet według szablonu {{s|HNumer}}. Funkcje tworzące nagłowki o dowolnym poziomie, raz jako nagłówki dodatnie równaniowo, a za innym razem według znaczników nagłówków, albo tylko według znaczników nagłówków. Funkcje są tam od wydzielania z nagłówka samego napisu wprowadzenia tekstu, tzn. jego zawartość. Funkcje wykrywające, czy w nim są rozdziały dodatnie rówaniowo, czy pozycje listy.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - Modyfikacje elementów w celu uzyskania lepszego formatu ===
Funkcje do modyfikacji analizowanej strony do lepszego formatu, by później łatwo dało się ją parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne. One sprawdzają, czy w nich są szablony, które muszą być w spisie, któryś przynajmniej z nich, ale nie zawsze. Funkcje sparwdzające, czy w nich są specjalne obiekty. Czy szablony mają odpowiednie nazwy według szablonów kompletowania. Funkcje usuwające kolejne spacje i dolne myślniki zamieniając je na jedną spacje. Funkcje wydzielające z wnętrza szablonu ich odpowiednią zawartość, według ściśle okreslonej procedury. Funkcje tworzące elementy według wzoru. Fukcje zamieniające znaczniki i szablony, nowej linii i kresek, na kolejno na znaki nowej linii. Funkcje do integracji tekstu.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - Parsowanie innych linii niż rozdziały dodatnie równaniowo ===
Funkcje do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, o analizowanych liniach, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module.
=== {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - Zbieranie informacji o sekcjach i ich tekstach rozdziałów ===
Funkcje do skladania, upraszczania ich oraz zbierania informacji o rozdziałach i ich tekstach rozdziałów (w tym ich modyfikacji i tworzeniu), i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
9cdwmctkvz0yrr4u2wfc2yrwodug6a1
Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom II
4
63904
557895
556355
2026-09-29T05:51:15Z
Persino
2851
557895
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.NapisWprowadzeniaTekstu}}{{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.
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:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Tekst wnętrza rozdziału.
| 2 = {{Code|poziom}} | _2 = 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>
== {{Śródtytuł|p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego}}{{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|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{LinkPatrz|tekst|StronicowyParser/Rozdziały}} | _1 = Tekst zawartości pierwszego parametru wspomnianego szablonu.
| 2 = {{Code|zawartość}} {{Patrz|zawartosc}} | _2 = Zawartość elementu kodu.
| 3 = {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} | _3 = Jaki to jest obiekt, np. {{Code|ZNACZNIK}}.
| 4 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}} | _4 = Kod danego obiektu.
}}
Funkcja wykorzystuje do swojego liczenia instrukcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, aby policzyć kod pewnego elementu mając zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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ć).
== {{Śródtytuł|p.NapisWprowadzeniaTekstuHNumer}}{{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:
{{OpisParametrów
| 1 = {{Code|parametr}} | _1 = 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 {{lpg|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>
== {{Śródtytuł|p.PodajNapisPoziomuWprowadzeniaTekstu}}{{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 '''{{NS|k=mw|l=tak|w=tak}}''', 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ą: {{LzLua|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:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = 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.
== {{Śródtytuł|p.PodajTekstHNumerNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|linia}} | _1 = 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>
== {{Śródtytuł|p.CzyJestNapisWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, 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}}.
== {{Śródtutuł|p.CzyJestListaNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, 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>}}.
== {{Śródtytuł|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}}{{Code|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}} ==
Funkcja sprawdzająca, czy w tekście jest jakolwiek nagłówek podany w postaci dodatniej równaniowej lub nagłówków w postaci znaczników: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}.
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|wiersz}} | _1 = 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).
Wartość zwracana:
{{OpisParametrów
| 1 = Czy takie dopasowanie znaleziono, możliwe wartości: {{Code|true/false}}. | komórka1 = tak
| 2 = Czy jest to rozdział dodatni równaniowy, wtedy {{Code|true}}, przeciwnie {{Code|false}}. | komórka2 = tak
}}
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>
== {{Śródtytuł|p.WierszHNumer}}{{Code|p.WierszHNumer}} ==
Funkcja w nagłówkach od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, usuwa w nich znaki nowych linii, zamieniając w nich po kolei na spację, i dodaje z lewej (przed znacznikiem) i prawej (po) stronie tego nagłówka znak nowej linii: {{Code|\n}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WierszHNumer(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = 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>
== {{Śródtytuł|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}}{{Code|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}} ==
Mając napis rozdziału wraz z numeracją, funkcja liczy właściwy napis i numerację w osobnych po kolei parametrach.
Funkcja jest 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:
{{OpisParametrów
| 1 = {{Code|rozdzial_z_numeracja}} | _1 = Rozdzial z numeracją lub bez.
}}
Zwracane wartości:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Rozdzial bez numeracji,
| 2 = {{Code|numetracja}} | _2 = 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>
== {{Śródtytuł|p.CzyZerowyNapisWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = Rozważana zakodowana linia, która może być rozdziałem zerowym, ale ona nie może być dodatnia, ani ujemna,
| 2 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}},
| 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
| 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
}}
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(linia,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>
== {{Śródtytuł|p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu}}{{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 parametru linkowego: {{Code|z_parametrami_linkowymi}} {{LinkPatrz|z_parametrami_linkowymi}}, lub przy jej wartości fałszywej, 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 nie, to zwracany w przeciwnym wypadku 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:
{{OpisParametrów
| 1 = {{Code|przedrotek_listy}} {{Patrz|przedrotek_listy}} | _1 = Przedrostek listy z linią {{Code|linia}}.
| 2 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _2 = Linia bez przedrostka.
| 3 = {{Code|z_parametrami_linkowymi}} {{Patrz|z_parametrami_linkowymi}} | _3 = 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.
| 4 = {{Code|nazwa_przestrzeni}} | _4 = Jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, i {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}} - parametry nazw książki.
| 5 = {{Code|nazwa_spisu_tresci}} | _5 = Jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 6 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _6 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 8 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _8 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 9 = {{Code|tab_nazwa_spisow_przekierowaniowych}} | _9 = Jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}}.
}}
Funckja wykorzustuje: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu|StronicowyParser/Rozdziały}}, i {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} - jak w: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki|StronicowyParser/Rozdziały}}.
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>
== {{Śródtytuł|p.HnNumerWprowadzeniaTekstu}}{{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}}.
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:
{{OpisParametrów
| 1 = {{Code|nazwa}} | _1 = Nazwa tagu typu {{Tag|h<numer>}}, gdzie: {{Code|<nowiki>0 < numer < 7</nowiki>}}.
| 2 = {{Code|atrybuty}} | _2 = Tabela atrybutów, których z jedną z elementów może być opcja: '''class'''.
}}
Funkcja wykorzystuje podtablicę: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.znaczniki_wprowadzenia_tekstu}}, tablicy transportu, którego link ma referencje do jej opisu, zdefiniowany w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, definicja jej jest w:
<syntaxhighlight lang="lua">
p.znaczniki_wprowadzenia_tekstu={
["h1"]=1,
["h2"]=2,
["h3"]=3,
["h4"]=4,
["h5"]=5,
["h6"]=6,
};
</syntaxhighlight>
Funkcja posługuje się jedynie na tych typach znaczników, a nie innych.
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}}.
== {{Śródtytuł|p.NumeracjaOrazTekstWprowadzeniaTekstu}}{{Code|p.NumeracjaOrazTekstWprowadzeniaTekstu}} ==
Funkcja zwraca numerację i rozdział całego rozdziału.
Funkcja jest 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 nim 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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Zawartość rozdziału, jak w: {{LinkPatrz|zawartosc}}.
}}
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>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ckjclcjcobvft1m7o1wlqp7xmvju1xj
557906
557895
2026-09-29T06:22:27Z
Persino
2851
/* {{Śródtutuł|p.CzyJestListaNapisuWprowadzeniaTekstu}}{{Code|p.CzyJestListaNapisuWprowadzeniaTekstu}} */
557906
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.NapisWprowadzeniaTekstu}}{{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.
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:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Tekst wnętrza rozdziału.
| 2 = {{Code|poziom}} | _2 = 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>
== {{Śródtytuł|p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego}}{{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|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{LinkPatrz|tekst|StronicowyParser/Rozdziały}} | _1 = Tekst zawartości pierwszego parametru wspomnianego szablonu.
| 2 = {{Code|zawartość}} {{Patrz|zawartosc}} | _2 = Zawartość elementu kodu.
| 3 = {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} | _3 = Jaki to jest obiekt, np. {{Code|ZNACZNIK}}.
| 4 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}} | _4 = Kod danego obiektu.
}}
Funkcja wykorzystuje do swojego liczenia instrukcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, aby policzyć kod pewnego elementu mając zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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ć).
== {{Śródtytuł|p.NapisWprowadzeniaTekstuHNumer}}{{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:
{{OpisParametrów
| 1 = {{Code|parametr}} | _1 = 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 {{lpg|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>
== {{Śródtytuł|p.PodajNapisPoziomuWprowadzeniaTekstu}}{{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 '''{{NS|k=mw|l=tak|w=tak}}''', 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ą: {{LzLua|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:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = 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.
== {{Śródtytuł|p.PodajTekstHNumerNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|linia}} | _1 = 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>
== {{Śródtytuł|p.CzyJestNapisWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, 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}}.
== {{Śródtytuł|p.CzyJestListaNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, 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>}}.
== {{Śródtytuł|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}}{{Code|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}} ==
Funkcja sprawdzająca, czy w tekście jest jakolwiek nagłówek podany w postaci dodatniej równaniowej lub nagłówków w postaci znaczników: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}.
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|wiersz}} | _1 = 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).
Wartość zwracana:
{{OpisParametrów
| 1 = Czy takie dopasowanie znaleziono, możliwe wartości: {{Code|true/false}}. | komórka1 = tak
| 2 = Czy jest to rozdział dodatni równaniowy, wtedy {{Code|true}}, przeciwnie {{Code|false}}. | komórka2 = tak
}}
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>
== {{Śródtytuł|p.WierszHNumer}}{{Code|p.WierszHNumer}} ==
Funkcja w nagłówkach od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, usuwa w nich znaki nowych linii, zamieniając w nich po kolei na spację, i dodaje z lewej (przed znacznikiem) i prawej (po) stronie tego nagłówka znak nowej linii: {{Code|\n}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WierszHNumer(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = 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>
== {{Śródtytuł|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}}{{Code|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}} ==
Mając napis rozdziału wraz z numeracją, funkcja liczy właściwy napis i numerację w osobnych po kolei parametrach.
Funkcja jest 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:
{{OpisParametrów
| 1 = {{Code|rozdzial_z_numeracja}} | _1 = Rozdzial z numeracją lub bez.
}}
Zwracane wartości:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Rozdzial bez numeracji,
| 2 = {{Code|numetracja}} | _2 = 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>
== {{Śródtytuł|p.CzyZerowyNapisWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = Rozważana zakodowana linia, która może być rozdziałem zerowym, ale ona nie może być dodatnia, ani ujemna,
| 2 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}},
| 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
| 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
}}
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(linia,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>
== {{Śródtytuł|p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu}}{{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 parametru linkowego: {{Code|z_parametrami_linkowymi}} {{LinkPatrz|z_parametrami_linkowymi}}, lub przy jej wartości fałszywej, 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 nie, to zwracany w przeciwnym wypadku 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:
{{OpisParametrów
| 1 = {{Code|przedrotek_listy}} {{Patrz|przedrotek_listy}} | _1 = Przedrostek listy z linią {{Code|linia}}.
| 2 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _2 = Linia bez przedrostka.
| 3 = {{Code|z_parametrami_linkowymi}} {{Patrz|z_parametrami_linkowymi}} | _3 = 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.
| 4 = {{Code|nazwa_przestrzeni}} | _4 = Jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, i {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}} - parametry nazw książki.
| 5 = {{Code|nazwa_spisu_tresci}} | _5 = Jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 6 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _6 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 8 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _8 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 9 = {{Code|tab_nazwa_spisow_przekierowaniowych}} | _9 = Jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}}.
}}
Funckja wykorzustuje: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu|StronicowyParser/Rozdziały}}, i {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} - jak w: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki|StronicowyParser/Rozdziały}}.
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>
== {{Śródtytuł|p.HnNumerWprowadzeniaTekstu}}{{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}}.
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:
{{OpisParametrów
| 1 = {{Code|nazwa}} | _1 = Nazwa tagu typu {{Tag|h<numer>}}, gdzie: {{Code|<nowiki>0 < numer < 7</nowiki>}}.
| 2 = {{Code|atrybuty}} | _2 = Tabela atrybutów, których z jedną z elementów może być opcja: '''class'''.
}}
Funkcja wykorzystuje podtablicę: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.znaczniki_wprowadzenia_tekstu}}, tablicy transportu, którego link ma referencje do jej opisu, zdefiniowany w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, definicja jej jest w:
<syntaxhighlight lang="lua">
p.znaczniki_wprowadzenia_tekstu={
["h1"]=1,
["h2"]=2,
["h3"]=3,
["h4"]=4,
["h5"]=5,
["h6"]=6,
};
</syntaxhighlight>
Funkcja posługuje się jedynie na tych typach znaczników, a nie innych.
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}}.
== {{Śródtytuł|p.NumeracjaOrazTekstWprowadzeniaTekstu}}{{Code|p.NumeracjaOrazTekstWprowadzeniaTekstu}} ==
Funkcja zwraca numerację i rozdział całego rozdziału.
Funkcja jest 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 nim 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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Zawartość rozdziału, jak w: {{LinkPatrz|zawartosc}}.
}}
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>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
bxrp7wjtz0ga9sixqb789vznbf5kqng
557954
557906
2026-09-29T08:33:04Z
Persino
2851
557954
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.NapisWprowadzeniaTekstu}}{{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.
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:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Tekst wnętrza rozdziału.
| 2 = {{Code|poziom}} | _2 = 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>
== {{Śródtytuł|p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego}}{{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|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{LinkPatrz|tekst|StronicowyParser/Rozdziały}} | _1 = Tekst zawartości pierwszego parametru wspomnianego szablonu.
| 2 = {{Code|zawartość}} {{Patrz|zawartosc}} | _2 = Zawartość elementu kodu.
| 3 = {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} | _3 = Jaki to jest obiekt, np. {{Code|ZNACZNIK}}.
| 4 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}} | _4 = Kod danego obiektu.
}}
Funkcja wykorzystuje do swojego liczenia instrukcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, aby policzyć kod pewnego elementu mając zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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ć).
== {{Śródtytuł|p.NapisWprowadzeniaTekstuHNumer}}{{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:
{{OpisParametrów
| 1 = {{Code|parametr}} | _1 = 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 {{lpg|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>
== {{Śródtytuł|p.PodajNapisPoziomuWprowadzeniaTekstu}}{{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 '''{{NS|k=mw|l=tak|w=tak}}''', 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ą: {{LzLua|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:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = 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.
== {{Śródtytuł|p.PodajTekstHNumerNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|linia}} | _1 = 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>
== {{Śródtytuł|p.CzyJestNapisWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, 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}}.
== {{Śródtytuł|p.CzyJestListaNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, 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>}}.
== {{Śródtytuł|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}}{{Code|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}} ==
Funkcja sprawdzająca, czy w tekście jest jakolwiek nagłówek podany w postaci dodatniej równaniowej lub nagłówków w postaci znaczników: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}.
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|wiersz}} | _1 = 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).
Wartość zwracana:
{{OpisParametrów
| 1 = Czy takie dopasowanie znaleziono, możliwe wartości: {{Code|true/false}}. | komórka1 = tak
| 2 = Czy jest to rozdział dodatni równaniowy, wtedy {{Code|true}}, przeciwnie {{Code|false}}. | komórka2 = tak
}}
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>
== {{Śródtytuł|p.WierszHNumer}}{{Code|p.WierszHNumer}} ==
Funkcja w nagłówkach od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, usuwa w nich znaki nowych linii, zamieniając w nich po kolei na spację, i dodaje z lewej (przed znacznikiem) i prawej (po) stronie tego nagłówka znak nowej linii: {{Code|\n}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WierszHNumer(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = 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>
== {{Śródtytuł|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}}{{Code|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}} ==
Mając napis rozdziału wraz z numeracją, funkcja liczy właściwy napis i numerację w osobnych po kolei parametrach.
Funkcja jest 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:
{{OpisParametrów
| 1 = {{Code|rozdzial_z_numeracja}} | _1 = Rozdzial z numeracją lub bez.
}}
Zwracane wartości:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Rozdzial bez numeracji,
| 2 = {{Code|numetracja}} | _2 = 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>
== {{Śródtytuł|p.CzyZerowyNapisWprowadzeniaTekstu}}{{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,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametr funkcji:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = Rozważana zakodowana linia, która może być rozdziałem zerowym, ale ona nie może być dodatnia, ani ujemna.
| 2 = {{Code|pelna_nazwa_spisu_tresci} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
}}
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(linia,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>
== {{Śródtytuł|p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu}}{{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 parametru linkowego: {{Code|z_parametrami_linkowymi}} {{LinkPatrz|z_parametrami_linkowymi}}, lub przy jej wartości fałszywej, 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 nie, to zwracany w przeciwnym wypadku jest wynik {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,z_parametrami_linkowymi,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|przedrotek_listy}} {{Patrz|przedrotek_listy}} | _1 = Przedrostek listy z linią {{Code|linia}}.
| 2 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _2 = Linia bez przedrostka.
| 3 = {{Code|z_parametrami_linkowymi}} {{Patrz|z_parametrami_linkowymi}} | _3 = 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.
| 4 = {{Code|nazwa_przestrzeni}} | _4 = Jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, i {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}} - parametry nazw książki.
| 5 = {{Code|nazwa_spisu_tresci}} | _5 = Jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 6 = {{Code|pelna_nazwa_spisu_tresci}} | _6 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 6 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _6 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 7 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _7 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 8 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _8 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 9 = {{Code|tab_nazwa_spisow_przekierowaniowych}} | _9 = Jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}}.
}}
Funckja wykorzustuje: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu|StronicowyParser/Rozdziały}}, i {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} - jak w: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki|StronicowyParser/Rozdziały}}.
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>
== {{Śródtytuł|p.HnNumerWprowadzeniaTekstu}}{{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}}.
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:
{{OpisParametrów
| 1 = {{Code|nazwa}} | _1 = Nazwa tagu typu {{Tag|h<numer>}}, gdzie: {{Code|<nowiki>0 < numer < 7</nowiki>}}.
| 2 = {{Code|atrybuty}} | _2 = Tabela atrybutów, których z jedną z elementów może być opcja: '''class'''.
}}
Funkcja wykorzystuje podtablicę: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.znaczniki_wprowadzenia_tekstu}}, tablicy transportu, którego link ma referencje do jej opisu, zdefiniowany w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, definicja jej jest w:
<syntaxhighlight lang="lua">
p.znaczniki_wprowadzenia_tekstu={
["h1"]=1,
["h2"]=2,
["h3"]=3,
["h4"]=4,
["h5"]=5,
["h6"]=6,
};
</syntaxhighlight>
Funkcja posługuje się jedynie na tych typach znaczników, a nie innych.
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}}.
== {{Śródtytuł|p.NumeracjaOrazTekstWprowadzeniaTekstu}}{{Code|p.NumeracjaOrazTekstWprowadzeniaTekstu}} ==
Funkcja zwraca numerację i rozdział całego rozdziału.
Funkcja jest 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 nim 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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Zawartość rozdziału, jak w: {{LinkPatrz|zawartosc}}.
}}
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>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
nvsaqsjkjum3d7kwmftlr0u8r9noc34
557955
557954
2026-09-29T08:34:42Z
Persino
2851
557955
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.NapisWprowadzeniaTekstu}}{{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.
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:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Tekst wnętrza rozdziału.
| 2 = {{Code|poziom}} | _2 = 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>
== {{Śródtytuł|p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego}}{{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|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{LinkPatrz|tekst|StronicowyParser/Rozdziały}} | _1 = Tekst zawartości pierwszego parametru wspomnianego szablonu.
| 2 = {{Code|zawartość}} {{Patrz|zawartosc}} | _2 = Zawartość elementu kodu.
| 3 = {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} | _3 = Jaki to jest obiekt, np. {{Code|ZNACZNIK}}.
| 4 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}} | _4 = Kod danego obiektu.
}}
Funkcja wykorzystuje do swojego liczenia instrukcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, aby policzyć kod pewnego elementu mając zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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ć).
== {{Śródtytuł|p.NapisWprowadzeniaTekstuHNumer}}{{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:
{{OpisParametrów
| 1 = {{Code|parametr}} | _1 = 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 {{lpg|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>
== {{Śródtytuł|p.PodajNapisPoziomuWprowadzeniaTekstu}}{{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 '''{{NS|k=mw|l=tak|w=tak}}''', 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ą: {{LzLua|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:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = 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.
== {{Śródtytuł|p.PodajTekstHNumerNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|linia}} | _1 = 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>
== {{Śródtytuł|p.CzyJestNapisWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, 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}}.
== {{Śródtytuł|p.CzyJestListaNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, 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>}}.
== {{Śródtytuł|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}}{{Code|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}} ==
Funkcja sprawdzająca, czy w tekście jest jakolwiek nagłówek podany w postaci dodatniej równaniowej lub nagłówków w postaci znaczników: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}.
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|wiersz}} | _1 = 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).
Wartość zwracana:
{{OpisParametrów
| 1 = Czy takie dopasowanie znaleziono, możliwe wartości: {{Code|true/false}}. | komórka1 = tak
| 2 = Czy jest to rozdział dodatni równaniowy, wtedy {{Code|true}}, przeciwnie {{Code|false}}. | komórka2 = tak
}}
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>
== {{Śródtytuł|p.WierszHNumer}}{{Code|p.WierszHNumer}} ==
Funkcja w nagłówkach od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, usuwa w nich znaki nowych linii, zamieniając w nich po kolei na spację, i dodaje z lewej (przed znacznikiem) i prawej (po) stronie tego nagłówka znak nowej linii: {{Code|\n}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WierszHNumer(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = 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>
== {{Śródtytuł|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}}{{Code|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}} ==
Mając napis rozdziału wraz z numeracją, funkcja liczy właściwy napis i numerację w osobnych po kolei parametrach.
Funkcja jest 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:
{{OpisParametrów
| 1 = {{Code|rozdzial_z_numeracja}} | _1 = Rozdzial z numeracją lub bez.
}}
Zwracane wartości:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Rozdzial bez numeracji,
| 2 = {{Code|numetracja}} | _2 = 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>
== {{Śródtytuł|p.CzyZerowyNapisWprowadzeniaTekstu}}{{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,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametr funkcji:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = Rozważana zakodowana linia, która może być rozdziałem zerowym, ale ona nie może być dodatnia, ani ujemna.
| 2 = {{Code|pelna_nazwa_spisu_tresci} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
}}
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(linia,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>
== {{Śródtytuł|p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu}}{{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 parametru linkowego: {{Code|z_parametrami_linkowymi}} {{LinkPatrz|z_parametrami_linkowymi}}, lub przy jej wartości fałszywej, 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 nie, to zwracany w przeciwnym wypadku jest wynik {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,z_parametrami_linkowymi,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|przedrotek_listy}} {{Patrz|przedrotek_listy}} | _1 = Przedrostek listy z linią {{Code|linia}}.
| 2 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _2 = Linia bez przedrostka.
| 3 = {{Code|z_parametrami_linkowymi}} {{Patrz|z_parametrami_linkowymi}} | _3 = 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.
| 4 = {{Code|nazwa_przestrzeni}} | _4 = Jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, i {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}} - parametry nazw książki.
| 5 = {{Code|nazwa_spisu_tresci}} | _5 = Jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 6 = {{Code|pelna_nazwa_spisu_tresci}} | _6 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 7 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _7 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _8 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _9 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 10 = {{Code|tab_nazwa_spisow_przekierowaniowych}} | _10 = Jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}}.
}}
Funckja wykorzustuje: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu|StronicowyParser/Rozdziały}}, i {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} - jak w: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki|StronicowyParser/Rozdziały}}.
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>
== {{Śródtytuł|p.HnNumerWprowadzeniaTekstu}}{{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}}.
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:
{{OpisParametrów
| 1 = {{Code|nazwa}} | _1 = Nazwa tagu typu {{Tag|h<numer>}}, gdzie: {{Code|<nowiki>0 < numer < 7</nowiki>}}.
| 2 = {{Code|atrybuty}} | _2 = Tabela atrybutów, których z jedną z elementów może być opcja: '''class'''.
}}
Funkcja wykorzystuje podtablicę: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.znaczniki_wprowadzenia_tekstu}}, tablicy transportu, którego link ma referencje do jej opisu, zdefiniowany w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, definicja jej jest w:
<syntaxhighlight lang="lua">
p.znaczniki_wprowadzenia_tekstu={
["h1"]=1,
["h2"]=2,
["h3"]=3,
["h4"]=4,
["h5"]=5,
["h6"]=6,
};
</syntaxhighlight>
Funkcja posługuje się jedynie na tych typach znaczników, a nie innych.
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}}.
== {{Śródtytuł|p.NumeracjaOrazTekstWprowadzeniaTekstu}}{{Code|p.NumeracjaOrazTekstWprowadzeniaTekstu}} ==
Funkcja zwraca numerację i rozdział całego rozdziału.
Funkcja jest 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 nim 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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Zawartość rozdziału, jak w: {{LinkPatrz|zawartosc}}.
}}
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>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
3060j4l94kylm9pu5jn1i08amu9608a
557977
557955
2026-09-29T10:01:29Z
Persino
2851
557977
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.NapisWprowadzeniaTekstu}}{{Code|p.NapisWprowadzeniaTekstu}} ==
Funkcja tworzy nagłówek rozdziału.
Dla poziomu większego niż zero, ale mniejszego niż sieden zwraca nagłówek, np.: {{Code|{{=}}{{=}} Tekst rozdziału {{=}}{{=}}}}, a dla większego niż sześć kreuje je jako, np.: {{Code|<nowiki><h6 class=\"mw-hnumber mw-hnumber-7">Tekst rozdziału</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.
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:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Tekst wnętrza rozdziału.
| 2 = {{Code|poziom}} | _2 = 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>
== {{Śródtytuł|p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego}}{{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|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{LinkPatrz|tekst|StronicowyParser/Rozdziały}} | _1 = Tekst zawartości pierwszego parametru wspomnianego szablonu.
| 2 = {{Code|zawartość}} {{Patrz|zawartosc}} | _2 = Zawartość elementu kodu.
| 3 = {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} | _3 = Jaki to jest obiekt, np. {{Code|ZNACZNIK}}.
| 4 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}} | _4 = Kod danego obiektu.
}}
Funkcja wykorzystuje do swojego liczenia instrukcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, aby policzyć kod pewnego elementu mając zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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ć).
== {{Śródtytuł|p.NapisWprowadzeniaTekstuHNumer}}{{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|{{=}}{{=}} Tekst rozdziału {{=}}{{=}}}}, 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>======== Tekst rozdziału ========</nowiki>}}, tworzy: {{Code|<nowiki><h6 class="mw-hnumber mw-hnumber-8">Tekst rozdziału</h6></nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.NapisWprowadzeniaTekstuHNumer(parametr)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|parametr}} | _1 = 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= === Tekst rozdziału ===}}
{{HNumer|1= ======= Tekst rozdziału =======}}
</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="=== Tekst rozdziału ===";
local tekst2="======= Tekst rozdziału =======";
---- 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 {{lpg|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>Tekst rozdziału</h3>";
local naglowek2="<h6 class=\"mw-hnumber mw-hnumber-8\">Tekst rozdziału</h6>";
</syntaxhighlight>
== {{Śródtytuł|p.PodajNapisPoziomuWprowadzeniaTekstu}}{{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 '''{{NS|k=mw|l=tak|w=tak}}''', 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ą: {{LzLua|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:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = 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.
== {{Śródtytuł|p.PodajTekstHNumerNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|linia}} | _1 = 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>
== {{Śródtytuł|p.CzyJestNapisWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, 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}}.
== {{Śródtytuł|p.CzyJestListaNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, 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>}}.
== {{Śródtytuł|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}}{{Code|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}} ==
Funkcja sprawdzająca, czy w tekście jest jakolwiek nagłówek podany w postaci dodatniej równaniowej lub nagłówków w postaci znaczników: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}.
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|wiersz}} | _1 = 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).
Wartość zwracana:
{{OpisParametrów
| 1 = Czy takie dopasowanie znaleziono, możliwe wartości: {{Code|true/false}}. | komórka1 = tak
| 2 = Czy jest to rozdział dodatni równaniowy, wtedy {{Code|true}}, przeciwnie {{Code|false}}. | komórka2 = tak
}}
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>
== {{Śródtytuł|p.WierszHNumer}}{{Code|p.WierszHNumer}} ==
Funkcja w nagłówkach od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, usuwa w nich znaki nowych linii, zamieniając w nich po kolei na spację, i dodaje z lewej (przed znacznikiem) i prawej (po) stronie tego nagłówka znak nowej linii: {{Code|\n}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WierszHNumer(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = 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>
== {{Śródtytuł|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}}{{Code|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}} ==
Mając napis rozdziału wraz z numeracją, funkcja liczy właściwy napis i numerację w osobnych po kolei parametrach.
Funkcja jest 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:
{{OpisParametrów
| 1 = {{Code|rozdzial_z_numeracja}} | _1 = Rozdzial z numeracją lub bez.
}}
Zwracane wartości:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Rozdzial bez numeracji,
| 2 = {{Code|numetracja}} | _2 = 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>
== {{Śródtytuł|p.CzyZerowyNapisWprowadzeniaTekstu}}{{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,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametr funkcji:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = Rozważana zakodowana linia, która może być rozdziałem zerowym, ale ona nie może być dodatnia, ani ujemna.
| 2 = {{Code|pelna_nazwa_spisu_tresci} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
}}
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(linia,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>
== {{Śródtytuł|p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu}}{{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 parametru linkowego: {{Code|z_parametrami_linkowymi}} {{LinkPatrz|z_parametrami_linkowymi}}, lub przy jej wartości fałszywej, 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 nie, to zwracany w przeciwnym wypadku jest wynik {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,z_parametrami_linkowymi,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|przedrotek_listy}} {{Patrz|przedrotek_listy}} | _1 = Przedrostek listy z linią {{Code|linia}}.
| 2 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _2 = Linia bez przedrostka.
| 3 = {{Code|z_parametrami_linkowymi}} {{Patrz|z_parametrami_linkowymi}} | _3 = 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.
| 4 = {{Code|nazwa_przestrzeni}} | _4 = Jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, i {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}} - parametry nazw książki.
| 5 = {{Code|nazwa_spisu_tresci}} | _5 = Jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 6 = {{Code|pelna_nazwa_spisu_tresci}} | _6 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 7 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _7 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _8 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _9 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 10 = {{Code|tab_nazwa_spisow_przekierowaniowych}} | _10 = Jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}}.
}}
Funckja wykorzustuje: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu|StronicowyParser/Rozdziały}}, i {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} - jak w: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki|StronicowyParser/Rozdziały}}.
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>
== {{Śródtytuł|p.HnNumerWprowadzeniaTekstu}}{{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}}.
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:
{{OpisParametrów
| 1 = {{Code|nazwa}} | _1 = Nazwa tagu typu {{Tag|h<numer>}}, gdzie: {{Code|<nowiki>0 < numer < 7</nowiki>}}.
| 2 = {{Code|atrybuty}} | _2 = Tabela atrybutów, których z jedną z elementów może być opcja: '''class'''.
}}
Funkcja wykorzystuje podtablicę: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.znaczniki_wprowadzenia_tekstu}}, tablicy transportu, którego link ma referencje do jej opisu, zdefiniowany w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, definicja jej jest w:
<syntaxhighlight lang="lua">
p.znaczniki_wprowadzenia_tekstu={
["h1"]=1,
["h2"]=2,
["h3"]=3,
["h4"]=4,
["h5"]=5,
["h6"]=6,
};
</syntaxhighlight>
Funkcja posługuje się jedynie na tych typach znaczników, a nie innych.
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}}.
== {{Śródtytuł|p.NumeracjaOrazTekstWprowadzeniaTekstu}}{{Code|p.NumeracjaOrazTekstWprowadzeniaTekstu}} ==
Funkcja zwraca numerację i rozdział całego rozdziału.
Funkcja jest 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 nim 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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Zawartość rozdziału, jak w: {{LinkPatrz|zawartosc}}.
}}
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>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0i9erqu6qzrpu1smbcs61px8537xjco
557978
557977
2026-09-29T10:13:26Z
Persino
2851
557978
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.NapisWprowadzeniaTekstu}}{{Code|p.NapisWprowadzeniaTekstu}} ==
Funkcja tworzy nagłówek rozdziału.
Dla poziomu większego niż zero, ale mniejszego niż sieden zwraca nagłówek, np.: {{Code|{{=}}{{=}} Tekst rozdziału {{=}}{{=}}}}, a dla większego niż sześć kreuje je jako, np.: {{Code|<nowiki><h6 class=\"mw-hnumber mw-hnumber-7">Tekst rozdziału</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.
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:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Tekst wnętrza rozdziału.
| 2 = {{Code|poziom}} | _2 = Numer całkowity dodatni poziomu.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego}}{{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|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{LinkPatrz|tekst|StronicowyParser/Rozdziały}} | _1 = Tekst zawartości pierwszego parametru wspomnianego szablonu.
| 2 = {{Code|zawartość}} {{Patrz|zawartosc}} | _2 = Zawartość elementu kodu.
| 3 = {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} | _3 = Jaki to jest obiekt, np. {{Code|ZNACZNIK}}.
| 4 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}} | _4 = Kod danego obiektu.
}}
Funkcja wykorzystuje do swojego liczenia instrukcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, aby policzyć kod pewnego elementu mając zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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ć).
== {{Śródtytuł|p.NapisWprowadzeniaTekstuHNumer}}{{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|{{=}}{{=}} Tekst rozdziału {{=}}{{=}}}}, 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>======== Tekst rozdziału ========</nowiki>}}, tworzy: {{Code|<nowiki><h6 class="mw-hnumber mw-hnumber-8">Tekst rozdziału</h6></nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.NapisWprowadzeniaTekstuHNumer(parametr)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|parametr}} | _1 = 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= === Tekst rozdziału ===}}
{{HNumer|1= ======= Tekst rozdziału =======}}
</syntaxhighlight>
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstuHNumer/}}.
== {{Śródtytuł|p.PodajNapisPoziomuWprowadzeniaTekstu}}{{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 '''{{NS|k=mw|l=tak|w=tak}}''', 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ą: {{LzLua|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:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = Parametr przedstawiający linię rozważanego tekstu, ona może być zakodowana.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/PodajNapisPoziomuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.PodajTekstHNumerNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|linia}} | _1 = 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ład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/PodajTekstHNumerNapisuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.CzyJestNapisWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, w którym zawarty jest jakikolwiek nagłówek, ono musi być zakodowane.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestNapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.CzyJestListaNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, w który ma znajdować napis wprowadzenia tekstu w postaci listy.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestListaNapisuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}}{{Code|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}} ==
Funkcja sprawdzająca, czy w tekście jest jakolwiek nagłówek podany w postaci dodatniej równaniowej lub nagłówków w postaci znaczników: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}.
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|wiersz}} | _1 = 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).
Wartość zwracana:
{{OpisParametrów
| 1 = Czy takie dopasowanie znaleziono, możliwe wartości: {{Code|true/false}}. | komórka1 = tak
| 2 = Czy jest to rozdział dodatni równaniowy, wtedy {{Code|true}}, przeciwnie {{Code|false}}. | komórka2 = tak
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/SprawdzanieCzyToJestNapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.WierszHNumer}}{{Code|p.WierszHNumer}} ==
Funkcja w nagłówkach od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, usuwa w nich znaki nowych linii, zamieniając w nich po kolei na spację, i dodaje z lewej (przed znacznikiem) i prawej (po) stronie tego nagłówka znak nowej linii: {{Code|\n}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WierszHNumer(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Parametr z tymi nagłówkami.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/WierszHNumer/}}.
== {{Śródtytuł|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}}{{Code|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}} ==
Mając napis rozdziału wraz z numeracją, funkcja liczy właściwy napis i numerację w osobnych po kolei parametrach.
Funkcja jest 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:
{{OpisParametrów
| 1 = {{Code|rozdzial_z_numeracja}} | _1 = Rozdzial z numeracją lub bez.
}}
Zwracane wartości:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Rozdzial bez numeracji,
| 2 = {{Code|numetracja}} | _2 = Numeracja.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu/}}.
== {{Śródtytuł|p.CzyZerowyNapisWprowadzeniaTekstu}}{{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,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametr funkcji:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = Rozważana zakodowana linia, która może być rozdziałem zerowym, ale ona nie może być dodatnia, ani ujemna.
| 2 = {{Code|pelna_nazwa_spisu_tresci} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
}}
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ład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu}}{{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 parametru linkowego: {{Code|z_parametrami_linkowymi}} {{LinkPatrz|z_parametrami_linkowymi}}, lub przy jej wartości fałszywej, 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 nie, to zwracany w przeciwnym wypadku jest wynik {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,z_parametrami_linkowymi,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|przedrotek_listy}} {{Patrz|przedrotek_listy}} | _1 = Przedrostek listy z linią {{Code|linia}}.
| 2 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _2 = Linia bez przedrostka.
| 3 = {{Code|z_parametrami_linkowymi}} {{Patrz|z_parametrami_linkowymi}} | _3 = 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.
| 4 = {{Code|nazwa_przestrzeni}} | _4 = Jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, i {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}} - parametry nazw książki.
| 5 = {{Code|nazwa_spisu_tresci}} | _5 = Jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 6 = {{Code|pelna_nazwa_spisu_tresci}} | _6 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 7 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _7 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _8 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _9 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 10 = {{Code|tab_nazwa_spisow_przekierowaniowych}} | _10 = Jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}}.
}}
Funckja wykorzustuje: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu|StronicowyParser/Rozdziały}}, i {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} - jak w: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki|StronicowyParser/Rozdziały}}.
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu/}}.
== {{Śródtytuł|p.HnNumerWprowadzeniaTekstu}}{{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}}.
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:
{{OpisParametrów
| 1 = {{Code|nazwa}} | _1 = Nazwa tagu typu {{Tag|h<numer>}}, gdzie: {{Code|<nowiki>0 < numer < 7</nowiki>}}.
| 2 = {{Code|atrybuty}} | _2 = Tabela atrybutów, których z jedną z elementów może być opcja: '''class'''.
}}
Funkcja wykorzystuje podtablicę: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.znaczniki_wprowadzenia_tekstu}}, tablicy transportu, którego link ma referencje do jej opisu, zdefiniowany w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, definicja jej jest w {{Patrz|p.znaczniki_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.znaczniki_wprowadzenia_tekstu={
["h1"]=1,
["h2"]=2,
["h3"]=3,
["h4"]=4,
["h5"]=5,
["h6"]=6,
};
</syntaxhighlight>
Funkcja posługuje się jedynie na tych typach znaczników, a nie innych.
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu/}}.
== {{Śródtytuł|p.NumeracjaOrazTekstWprowadzeniaTekstu}}{{Code|p.NumeracjaOrazTekstWprowadzeniaTekstu}} ==
Funkcja zwraca numerację i rozdział całego rozdziału.
Funkcja jest 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 nim 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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Zawartość rozdziału, jak w: {{LinkPatrz|zawartosc}}.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NumeracjaOrazTekstWprowadzeniaTekstu/}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
554cfgs8awxv8kiq05cdg6s2dsimtbc
557979
557978
2026-09-29T10:14:10Z
Persino
2851
/* {{Śródtytuł|p.HnNumerWprowadzeniaTekstu}}{{Code|p.HnNumerWprowadzeniaTekstu}} */
557979
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.NapisWprowadzeniaTekstu}}{{Code|p.NapisWprowadzeniaTekstu}} ==
Funkcja tworzy nagłówek rozdziału.
Dla poziomu większego niż zero, ale mniejszego niż sieden zwraca nagłówek, np.: {{Code|{{=}}{{=}} Tekst rozdziału {{=}}{{=}}}}, a dla większego niż sześć kreuje je jako, np.: {{Code|<nowiki><h6 class=\"mw-hnumber mw-hnumber-7">Tekst rozdziału</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.
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:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Tekst wnętrza rozdziału.
| 2 = {{Code|poziom}} | _2 = Numer całkowity dodatni poziomu.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego}}{{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|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{LinkPatrz|tekst|StronicowyParser/Rozdziały}} | _1 = Tekst zawartości pierwszego parametru wspomnianego szablonu.
| 2 = {{Code|zawartość}} {{Patrz|zawartosc}} | _2 = Zawartość elementu kodu.
| 3 = {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} | _3 = Jaki to jest obiekt, np. {{Code|ZNACZNIK}}.
| 4 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}} | _4 = Kod danego obiektu.
}}
Funkcja wykorzystuje do swojego liczenia instrukcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, aby policzyć kod pewnego elementu mając zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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ć).
== {{Śródtytuł|p.NapisWprowadzeniaTekstuHNumer}}{{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|{{=}}{{=}} Tekst rozdziału {{=}}{{=}}}}, 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>======== Tekst rozdziału ========</nowiki>}}, tworzy: {{Code|<nowiki><h6 class="mw-hnumber mw-hnumber-8">Tekst rozdziału</h6></nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.NapisWprowadzeniaTekstuHNumer(parametr)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|parametr}} | _1 = 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= === Tekst rozdziału ===}}
{{HNumer|1= ======= Tekst rozdziału =======}}
</syntaxhighlight>
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstuHNumer/}}.
== {{Śródtytuł|p.PodajNapisPoziomuWprowadzeniaTekstu}}{{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 '''{{NS|k=mw|l=tak|w=tak}}''', 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ą: {{LzLua|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:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = Parametr przedstawiający linię rozważanego tekstu, ona może być zakodowana.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/PodajNapisPoziomuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.PodajTekstHNumerNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|linia}} | _1 = 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ład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/PodajTekstHNumerNapisuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.CzyJestNapisWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, w którym zawarty jest jakikolwiek nagłówek, ono musi być zakodowane.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestNapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.CzyJestListaNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, w który ma znajdować napis wprowadzenia tekstu w postaci listy.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestListaNapisuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}}{{Code|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}} ==
Funkcja sprawdzająca, czy w tekście jest jakolwiek nagłówek podany w postaci dodatniej równaniowej lub nagłówków w postaci znaczników: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}.
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|wiersz}} | _1 = 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).
Wartość zwracana:
{{OpisParametrów
| 1 = Czy takie dopasowanie znaleziono, możliwe wartości: {{Code|true/false}}. | komórka1 = tak
| 2 = Czy jest to rozdział dodatni równaniowy, wtedy {{Code|true}}, przeciwnie {{Code|false}}. | komórka2 = tak
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/SprawdzanieCzyToJestNapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.WierszHNumer}}{{Code|p.WierszHNumer}} ==
Funkcja w nagłówkach od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, usuwa w nich znaki nowych linii, zamieniając w nich po kolei na spację, i dodaje z lewej (przed znacznikiem) i prawej (po) stronie tego nagłówka znak nowej linii: {{Code|\n}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WierszHNumer(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Parametr z tymi nagłówkami.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/WierszHNumer/}}.
== {{Śródtytuł|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}}{{Code|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}} ==
Mając napis rozdziału wraz z numeracją, funkcja liczy właściwy napis i numerację w osobnych po kolei parametrach.
Funkcja jest 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:
{{OpisParametrów
| 1 = {{Code|rozdzial_z_numeracja}} | _1 = Rozdzial z numeracją lub bez.
}}
Zwracane wartości:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Rozdzial bez numeracji,
| 2 = {{Code|numetracja}} | _2 = Numeracja.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu/}}.
== {{Śródtytuł|p.CzyZerowyNapisWprowadzeniaTekstu}}{{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,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametr funkcji:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = Rozważana zakodowana linia, która może być rozdziałem zerowym, ale ona nie może być dodatnia, ani ujemna.
| 2 = {{Code|pelna_nazwa_spisu_tresci} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
}}
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ład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu}}{{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 parametru linkowego: {{Code|z_parametrami_linkowymi}} {{LinkPatrz|z_parametrami_linkowymi}}, lub przy jej wartości fałszywej, 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 nie, to zwracany w przeciwnym wypadku jest wynik {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,z_parametrami_linkowymi,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|przedrotek_listy}} {{Patrz|przedrotek_listy}} | _1 = Przedrostek listy z linią {{Code|linia}}.
| 2 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _2 = Linia bez przedrostka.
| 3 = {{Code|z_parametrami_linkowymi}} {{Patrz|z_parametrami_linkowymi}} | _3 = 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.
| 4 = {{Code|nazwa_przestrzeni}} | _4 = Jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, i {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}} - parametry nazw książki.
| 5 = {{Code|nazwa_spisu_tresci}} | _5 = Jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 6 = {{Code|pelna_nazwa_spisu_tresci}} | _6 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 7 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _7 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _8 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _9 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 10 = {{Code|tab_nazwa_spisow_przekierowaniowych}} | _10 = Jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}}.
}}
Funckja wykorzustuje: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu|StronicowyParser/Rozdziały}}, i {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} - jak w: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki|StronicowyParser/Rozdziały}}.
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu/}}.
== {{Śródtytuł|p.HnNumerWprowadzeniaTekstu}}{{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}}.
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:
{{OpisParametrów
| 1 = {{Code|nazwa}} | _1 = Nazwa tagu typu {{Tag|h<numer>}}, gdzie: {{Code|<nowiki>0 < numer < 7</nowiki>}}.
| 2 = {{Code|atrybuty}} | _2 = Tabela atrybutów, których z jedną z elementów może być opcja: '''class'''.
}}
Funkcja wykorzystuje podtablicę: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.znaczniki_wprowadzenia_tekstu}}, tablicy transportu, którego link ma referencje do jej opisu, zdefiniowany w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, definicja jej jest w:
<syntaxhighlight lang="lua">
p.znaczniki_wprowadzenia_tekstu={
["h1"]=1,
["h2"]=2,
["h3"]=3,
["h4"]=4,
["h5"]=5,
["h6"]=6,
};
</syntaxhighlight>
Funkcja posługuje się jedynie na tych typach znaczników, a nie innych.
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu/}}.
== {{Śródtytuł|p.NumeracjaOrazTekstWprowadzeniaTekstu}}{{Code|p.NumeracjaOrazTekstWprowadzeniaTekstu}} ==
Funkcja zwraca numerację i rozdział całego rozdziału.
Funkcja jest 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 nim 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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Zawartość rozdziału, jak w: {{LinkPatrz|zawartosc}}.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NumeracjaOrazTekstWprowadzeniaTekstu/}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
avgm0fmj5wcsbyxnxme875i25kmt3fe
557980
557979
2026-09-29T10:16:28Z
Persino
2851
/* {{Śródtytuł|p.CzyZerowyNapisWprowadzeniaTekstu}}{{Code|p.CzyZerowyNapisWprowadzeniaTekstu}} */
557980
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.NapisWprowadzeniaTekstu}}{{Code|p.NapisWprowadzeniaTekstu}} ==
Funkcja tworzy nagłówek rozdziału.
Dla poziomu większego niż zero, ale mniejszego niż sieden zwraca nagłówek, np.: {{Code|{{=}}{{=}} Tekst rozdziału {{=}}{{=}}}}, a dla większego niż sześć kreuje je jako, np.: {{Code|<nowiki><h6 class=\"mw-hnumber mw-hnumber-7">Tekst rozdziału</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.
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:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Tekst wnętrza rozdziału.
| 2 = {{Code|poziom}} | _2 = Numer całkowity dodatni poziomu.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego}}{{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|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{LinkPatrz|tekst|StronicowyParser/Rozdziały}} | _1 = Tekst zawartości pierwszego parametru wspomnianego szablonu.
| 2 = {{Code|zawartość}} {{Patrz|zawartosc}} | _2 = Zawartość elementu kodu.
| 3 = {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} | _3 = Jaki to jest obiekt, np. {{Code|ZNACZNIK}}.
| 4 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}} | _4 = Kod danego obiektu.
}}
Funkcja wykorzystuje do swojego liczenia instrukcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, aby policzyć kod pewnego elementu mając zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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ć).
== {{Śródtytuł|p.NapisWprowadzeniaTekstuHNumer}}{{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|{{=}}{{=}} Tekst rozdziału {{=}}{{=}}}}, 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>======== Tekst rozdziału ========</nowiki>}}, tworzy: {{Code|<nowiki><h6 class="mw-hnumber mw-hnumber-8">Tekst rozdziału</h6></nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.NapisWprowadzeniaTekstuHNumer(parametr)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|parametr}} | _1 = 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= === Tekst rozdziału ===}}
{{HNumer|1= ======= Tekst rozdziału =======}}
</syntaxhighlight>
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstuHNumer/}}.
== {{Śródtytuł|p.PodajNapisPoziomuWprowadzeniaTekstu}}{{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 '''{{NS|k=mw|l=tak|w=tak}}''', 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ą: {{LzLua|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:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = Parametr przedstawiający linię rozważanego tekstu, ona może być zakodowana.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/PodajNapisPoziomuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.PodajTekstHNumerNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|linia}} | _1 = 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ład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/PodajTekstHNumerNapisuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.CzyJestNapisWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, w którym zawarty jest jakikolwiek nagłówek, ono musi być zakodowane.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestNapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.CzyJestListaNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, w który ma znajdować napis wprowadzenia tekstu w postaci listy.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestListaNapisuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}}{{Code|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}} ==
Funkcja sprawdzająca, czy w tekście jest jakolwiek nagłówek podany w postaci dodatniej równaniowej lub nagłówków w postaci znaczników: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}.
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|wiersz}} | _1 = 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).
Wartość zwracana:
{{OpisParametrów
| 1 = Czy takie dopasowanie znaleziono, możliwe wartości: {{Code|true/false}}. | komórka1 = tak
| 2 = Czy jest to rozdział dodatni równaniowy, wtedy {{Code|true}}, przeciwnie {{Code|false}}. | komórka2 = tak
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/SprawdzanieCzyToJestNapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.WierszHNumer}}{{Code|p.WierszHNumer}} ==
Funkcja w nagłówkach od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, usuwa w nich znaki nowych linii, zamieniając w nich po kolei na spację, i dodaje z lewej (przed znacznikiem) i prawej (po) stronie tego nagłówka znak nowej linii: {{Code|\n}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WierszHNumer(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Parametr z tymi nagłówkami.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/WierszHNumer/}}.
== {{Śródtytuł|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}}{{Code|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}} ==
Mając napis rozdziału wraz z numeracją, funkcja liczy właściwy napis i numerację w osobnych po kolei parametrach.
Funkcja jest 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:
{{OpisParametrów
| 1 = {{Code|rozdzial_z_numeracja}} | _1 = Rozdzial z numeracją lub bez.
}}
Zwracane wartości:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Rozdzial bez numeracji,
| 2 = {{Code|numetracja}} | _2 = Numeracja.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu/}}.
== {{Śródtytuł|p.CzyZerowyNapisWprowadzeniaTekstu}}{{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,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametr funkcji:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = Rozważana zakodowana linia, która może być rozdziałem zerowym, ale ona nie może być dodatnia, ani ujemna.
| 2 = {{Code|pelna_nazwa_spisu_tresci}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
}}
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ład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu}}{{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 parametru linkowego: {{Code|z_parametrami_linkowymi}} {{LinkPatrz|z_parametrami_linkowymi}}, lub przy jej wartości fałszywej, 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 nie, to zwracany w przeciwnym wypadku jest wynik {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,z_parametrami_linkowymi,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|przedrotek_listy}} {{Patrz|przedrotek_listy}} | _1 = Przedrostek listy z linią {{Code|linia}}.
| 2 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _2 = Linia bez przedrostka.
| 3 = {{Code|z_parametrami_linkowymi}} {{Patrz|z_parametrami_linkowymi}} | _3 = 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.
| 4 = {{Code|nazwa_przestrzeni}} | _4 = Jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, i {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}} - parametry nazw książki.
| 5 = {{Code|nazwa_spisu_tresci}} | _5 = Jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 6 = {{Code|pelna_nazwa_spisu_tresci}} | _6 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 7 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _7 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _8 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _9 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 10 = {{Code|tab_nazwa_spisow_przekierowaniowych}} | _10 = Jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}}.
}}
Funckja wykorzustuje: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu|StronicowyParser/Rozdziały}}, i {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} - jak w: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki|StronicowyParser/Rozdziały}}.
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu/}}.
== {{Śródtytuł|p.HnNumerWprowadzeniaTekstu}}{{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}}.
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:
{{OpisParametrów
| 1 = {{Code|nazwa}} | _1 = Nazwa tagu typu {{Tag|h<numer>}}, gdzie: {{Code|<nowiki>0 < numer < 7</nowiki>}}.
| 2 = {{Code|atrybuty}} | _2 = Tabela atrybutów, których z jedną z elementów może być opcja: '''class'''.
}}
Funkcja wykorzystuje podtablicę: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.znaczniki_wprowadzenia_tekstu}}, tablicy transportu, którego link ma referencje do jej opisu, zdefiniowany w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, definicja jej jest w:
<syntaxhighlight lang="lua">
p.znaczniki_wprowadzenia_tekstu={
["h1"]=1,
["h2"]=2,
["h3"]=3,
["h4"]=4,
["h5"]=5,
["h6"]=6,
};
</syntaxhighlight>
Funkcja posługuje się jedynie na tych typach znaczników, a nie innych.
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu/}}.
== {{Śródtytuł|p.NumeracjaOrazTekstWprowadzeniaTekstu}}{{Code|p.NumeracjaOrazTekstWprowadzeniaTekstu}} ==
Funkcja zwraca numerację i rozdział całego rozdziału.
Funkcja jest 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 nim 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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Zawartość rozdziału, jak w: {{LinkPatrz|zawartosc}}.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NumeracjaOrazTekstWprowadzeniaTekstu/}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
jiffehgwrz345s1xu0cg3kau635jk0u
557981
557980
2026-09-29T10:28:37Z
Persino
2851
557981
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.NapisWprowadzeniaTekstu}}{{Code|p.NapisWprowadzeniaTekstu}} ==
Funkcja tworzy nagłówek rozdziału.
Dla poziomu większego niż zero, ale mniejszego niż siedem, zwraca nagłówek, np.: {{Code|{{=}}{{=}} Tekst rozdziału {{=}}{{=}}}}, a dla większego niż sześć kreuje je jako, np.: {{Code|<nowiki><h6 class=\"mw-hnumber mw-hnumber-7">Tekst rozdziału</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.
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:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Tekst wnętrza rozdziału.
| 2 = {{Code|poziom}} | _2 = Numer całkowity dodatni poziomu.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.NapisWprowadzeniaTekstuHn}}{{Code|p.NapisWprowadzeniaTekstuHn}} ==
Funkcja dla rozdziału: na podstawie jej zawartości, poziomu i identyfikatora, zamienia to na nagłówek w jednej linii.
Dla poziomu większego niż zero, ale mniejszego niż siedem, zwraca nagłówek, np.: {{Code|<nowiki><h3>Tekst rozdziału</h6></nowiki>}}. 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.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.NapisWprowadzeniaTekstuHn(rozdzial,poziom,id)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Tekst rozdziału.
| 2 = {{Code|poziom}} | _2 = Poziom rozdziału.
| 3 = {{Code|id}} | _3 = identyfikator rozdziału.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstuHn/}}.
== {{Śródtytuł|p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego}}{{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|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{LinkPatrz|tekst|StronicowyParser/Rozdziały}} | _1 = Tekst zawartości pierwszego parametru wspomnianego szablonu.
| 2 = {{Code|zawartość}} {{Patrz|zawartosc}} | _2 = Zawartość elementu kodu.
| 3 = {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} | _3 = Jaki to jest obiekt, np. {{Code|ZNACZNIK}}.
| 4 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}} | _4 = Kod danego obiektu.
}}
Funkcja wykorzystuje do swojego liczenia instrukcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, aby policzyć kod pewnego elementu mając zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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ć).
== {{Śródtytuł|p.NapisWprowadzeniaTekstuHNumer}}{{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|{{=}}{{=}} Tekst rozdziału {{=}}{{=}}}}, 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>======== Tekst rozdziału ========</nowiki>}}, tworzy: {{Code|<nowiki><h6 class="mw-hnumber mw-hnumber-8">Tekst rozdziału</h6></nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.NapisWprowadzeniaTekstuHNumer(parametr)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|parametr}} | _1 = 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= === Tekst rozdziału ===}}
{{HNumer|1= ======= Tekst rozdziału =======}}
</syntaxhighlight>
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstuHNumer/}}.
== {{Śródtytuł|p.PodajNapisPoziomuWprowadzeniaTekstu}}{{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 '''{{NS|k=mw|l=tak|w=tak}}''', 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ą: {{LzLua|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:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = Parametr przedstawiający linię rozważanego tekstu, ona może być zakodowana.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/PodajNapisPoziomuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.PodajTekstHNumerNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|linia}} | _1 = 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ład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/PodajTekstHNumerNapisuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.CzyJestNapisWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, w którym zawarty jest jakikolwiek nagłówek, ono musi być zakodowane.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestNapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.CzyJestListaNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, w który ma znajdować napis wprowadzenia tekstu w postaci listy.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestListaNapisuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}}{{Code|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}} ==
Funkcja sprawdzająca, czy w tekście jest jakolwiek nagłówek podany w postaci dodatniej równaniowej lub nagłówków w postaci znaczników: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}.
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|wiersz}} | _1 = 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).
Wartość zwracana:
{{OpisParametrów
| 1 = Czy takie dopasowanie znaleziono, możliwe wartości: {{Code|true/false}}. | komórka1 = tak
| 2 = Czy jest to rozdział dodatni równaniowy, wtedy {{Code|true}}, przeciwnie {{Code|false}}. | komórka2 = tak
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/SprawdzanieCzyToJestNapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.WierszHNumer}}{{Code|p.WierszHNumer}} ==
Funkcja w nagłówkach od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, usuwa w nich znaki nowych linii, zamieniając w nich po kolei na spację, i dodaje z lewej (przed znacznikiem) i prawej (po) stronie tego nagłówka znak nowej linii: {{Code|\n}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WierszHNumer(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Parametr z tymi nagłówkami.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/WierszHNumer/}}.
== {{Śródtytuł|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}}{{Code|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}} ==
Mając napis rozdziału wraz z numeracją, funkcja liczy właściwy napis i numerację w osobnych po kolei parametrach.
Funkcja jest 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:
{{OpisParametrów
| 1 = {{Code|rozdzial_z_numeracja}} | _1 = Rozdzial z numeracją lub bez.
}}
Zwracane wartości:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Rozdzial bez numeracji,
| 2 = {{Code|numetracja}} | _2 = Numeracja.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu/}}.
== {{Śródtytuł|p.CzyZerowyNapisWprowadzeniaTekstu}}{{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,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametr funkcji:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = Rozważana zakodowana linia, która może być rozdziałem zerowym, ale ona nie może być dodatnia, ani ujemna.
| 2 = {{Code|pelna_nazwa_spisu_tresci}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
}}
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ład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu}}{{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 parametru linkowego: {{Code|z_parametrami_linkowymi}} {{LinkPatrz|z_parametrami_linkowymi}}, lub przy jej wartości fałszywej, 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 nie, to zwracany w przeciwnym wypadku jest wynik {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,z_parametrami_linkowymi,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|przedrotek_listy}} {{Patrz|przedrotek_listy}} | _1 = Przedrostek listy z linią {{Code|linia}}.
| 2 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _2 = Linia bez przedrostka.
| 3 = {{Code|z_parametrami_linkowymi}} {{Patrz|z_parametrami_linkowymi}} | _3 = 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.
| 4 = {{Code|nazwa_przestrzeni}} | _4 = Jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, i {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}} - parametry nazw książki.
| 5 = {{Code|nazwa_spisu_tresci}} | _5 = Jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 6 = {{Code|pelna_nazwa_spisu_tresci}} | _6 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 7 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _7 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _8 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _9 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 10 = {{Code|tab_nazwa_spisow_przekierowaniowych}} | _10 = Jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}}.
}}
Funckja wykorzustuje: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu|StronicowyParser/Rozdziały}}, i {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} - jak w: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki|StronicowyParser/Rozdziały}}.
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu/}}.
== {{Śródtytuł|p.HnNumerWprowadzeniaTekstu}}{{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}}.
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:
{{OpisParametrów
| 1 = {{Code|nazwa}} | _1 = Nazwa tagu typu {{Tag|h<numer>}}, gdzie: {{Code|<nowiki>0 < numer < 7</nowiki>}}.
| 2 = {{Code|atrybuty}} | _2 = Tabela atrybutów, których z jedną z elementów może być opcja: '''class'''.
}}
Funkcja wykorzystuje podtablicę: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.znaczniki_wprowadzenia_tekstu}}, tablicy transportu, którego link ma referencje do jej opisu, zdefiniowany w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, definicja jej jest w:
<syntaxhighlight lang="lua">
p.znaczniki_wprowadzenia_tekstu={
["h1"]=1,
["h2"]=2,
["h3"]=3,
["h4"]=4,
["h5"]=5,
["h6"]=6,
};
</syntaxhighlight>
Funkcja posługuje się jedynie na tych typach znaczników, a nie innych.
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu/}}.
== {{Śródtytuł|p.NumeracjaOrazTekstWprowadzeniaTekstu}}{{Code|p.NumeracjaOrazTekstWprowadzeniaTekstu}} ==
Funkcja zwraca numerację i rozdział całego rozdziału.
Funkcja jest 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 nim 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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Zawartość rozdziału, jak w: {{LinkPatrz|zawartosc}}.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NumeracjaOrazTekstWprowadzeniaTekstu/}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
rixr5agc7dxvzyfjpp4stnvdb1uxki5
557984
557981
2026-09-29T10:48:36Z
Persino
2851
/* {{Śródtytuł|p.NapisWprowadzeniaTekstuHn}}{{Code|p.NapisWprowadzeniaTekstuHn}} */
557984
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.NapisWprowadzeniaTekstu}}{{Code|p.NapisWprowadzeniaTekstu}} ==
Funkcja tworzy nagłówek rozdziału.
Dla poziomu większego niż zero, ale mniejszego niż siedem, zwraca nagłówek, np.: {{Code|{{=}}{{=}} Tekst rozdziału {{=}}{{=}}}}, a dla większego niż sześć kreuje je jako, np.: {{Code|<nowiki><h6 class=\"mw-hnumber mw-hnumber-7">Tekst rozdziału</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.
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:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Tekst wnętrza rozdziału.
| 2 = {{Code|poziom}} | _2 = Numer całkowity dodatni poziomu.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.NapisWprowadzeniaTekstuHn}}{{Code|p.NapisWprowadzeniaTekstuHn}} ==
Funkcja dla rozdziału: na podstawie jej zawartości, poziomu i tabeli atrybutów, zamienia to na nagłówek w jednej linii.
Dla poziomu większego niż zero, ale mniejszego niż siedem, zwraca nagłówek, np.: {{Code|<nowiki><h3>Tekst rozdziału</h3></nowiki>}}, dla poziomu: {{Code|3}}, czy są używane wtedy są nagłówki od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}. 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, czyli coś w rodzaju, np. {{Code|<nowiki><h6 id="coś" class="mw-hnumber mw-hnumber-9">Tekst rozdziału</h6></nowiki>}}, dla poziomu: {{Code|9}}.
Definicji skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.NapisWprowadzeniaTekstuHn(rozdzial,poziom,tab_atrybuty)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Tekst rozdziału.
| 2 = {{Code|poziom}} | _2 = Poziom rozdziału.
| 3 = {{Code|tab_atrybuty}} | _3 = Tabela nazw (kluczy) i ich wartości atrybutów.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstuHn/}}.
== {{Śródtytuł|p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego}}{{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|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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:
{{OpisParametrów
| 1 = {{Code|tekst}} {{LinkPatrz|tekst|StronicowyParser/Rozdziały}} | _1 = Tekst zawartości pierwszego parametru wspomnianego szablonu.
| 2 = {{Code|zawartość}} {{Patrz|zawartosc}} | _2 = Zawartość elementu kodu.
| 3 = {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} | _3 = Jaki to jest obiekt, np. {{Code|ZNACZNIK}}.
| 4 = {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}} | _4 = Kod danego obiektu.
}}
Funkcja wykorzystuje do swojego liczenia instrukcję: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, aby policzyć kod pewnego elementu mając zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} i {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}, 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ć).
== {{Śródtytuł|p.NapisWprowadzeniaTekstuHNumer}}{{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|{{=}}{{=}} Tekst rozdziału {{=}}{{=}}}}, 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>======== Tekst rozdziału ========</nowiki>}}, tworzy: {{Code|<nowiki><h6 class="mw-hnumber mw-hnumber-8">Tekst rozdziału</h6></nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.NapisWprowadzeniaTekstuHNumer(parametr)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|parametr}} | _1 = 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= === Tekst rozdziału ===}}
{{HNumer|1= ======= Tekst rozdziału =======}}
</syntaxhighlight>
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstuHNumer/}}.
== {{Śródtytuł|p.PodajNapisPoziomuWprowadzeniaTekstu}}{{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 '''{{NS|k=mw|l=tak|w=tak}}''', 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ą: {{LzLua|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:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = Parametr przedstawiający linię rozważanego tekstu, ona może być zakodowana.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/PodajNapisPoziomuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.PodajTekstHNumerNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|linia}} | _1 = 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ład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/PodajTekstHNumerNapisuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.CzyJestNapisWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, w którym zawarty jest jakikolwiek nagłówek, ono musi być zakodowane.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestNapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.CzyJestListaNapisuWprowadzeniaTekstu}}{{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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Tekst, jak w: {{LinkPatrz|zawartosc}}, w który ma znajdować napis wprowadzenia tekstu w postaci listy.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestListaNapisuWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}}{{Code|p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu}} ==
Funkcja sprawdzająca, czy w tekście jest jakolwiek nagłówek podany w postaci dodatniej równaniowej lub nagłówków w postaci znaczników: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}.
Definicja skrótowa funkcji
<syntaxhighlight lang="lua">
function p.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(wiersz)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|wiersz}} | _1 = 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).
Wartość zwracana:
{{OpisParametrów
| 1 = Czy takie dopasowanie znaleziono, możliwe wartości: {{Code|true/false}}. | komórka1 = tak
| 2 = Czy jest to rozdział dodatni równaniowy, wtedy {{Code|true}}, przeciwnie {{Code|false}}. | komórka2 = tak
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/SprawdzanieCzyToJestNapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.WierszHNumer}}{{Code|p.WierszHNumer}} ==
Funkcja w nagłówkach od: {{Code|<nowiki><h1></nowiki>}}, do: {{Code|<nowiki><h6></nowiki>}}, usuwa w nich znaki nowych linii, zamieniając w nich po kolei na spację, i dodaje z lewej (przed znacznikiem) i prawej (po) stronie tego nagłówka znak nowej linii: {{Code|\n}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WierszHNumer(tekst)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tekst}} | _1 = Parametr z tymi nagłówkami.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/WierszHNumer/}}.
== {{Śródtytuł|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}}{{Code|p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu}} ==
Mając napis rozdziału wraz z numeracją, funkcja liczy właściwy napis i numerację w osobnych po kolei parametrach.
Funkcja jest 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:
{{OpisParametrów
| 1 = {{Code|rozdzial_z_numeracja}} | _1 = Rozdzial z numeracją lub bez.
}}
Zwracane wartości:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Rozdzial bez numeracji,
| 2 = {{Code|numetracja}} | _2 = Numeracja.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu/}}.
== {{Śródtytuł|p.CzyZerowyNapisWprowadzeniaTekstu}}{{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,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametr funkcji:
{{OpisParametrów
| 1 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _1 = Rozważana zakodowana linia, która może być rozdziałem zerowym, ale ona nie może być dodatnia, ani ujemna.
| 2 = {{Code|pelna_nazwa_spisu_tresci}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
}}
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ład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/}}.
== {{Śródtytuł|p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu}}{{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 parametru linkowego: {{Code|z_parametrami_linkowymi}} {{LinkPatrz|z_parametrami_linkowymi}}, lub przy jej wartości fałszywej, 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 nie, to zwracany w przeciwnym wypadku jest wynik {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia,z_parametrami_linkowymi,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|przedrotek_listy}} {{Patrz|przedrotek_listy}} | _1 = Przedrostek listy z linią {{Code|linia}}.
| 2 = {{Code|linia}} {{LinkPatrz|linia|StronicowyParser/Rozdziały}} | _2 = Linia bez przedrostka.
| 3 = {{Code|z_parametrami_linkowymi}} {{Patrz|z_parametrami_linkowymi}} | _3 = 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.
| 4 = {{Code|nazwa_przestrzeni}} | _4 = Jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, i {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}} - parametry nazw książki.
| 5 = {{Code|nazwa_spisu_tresci}} | _5 = Jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 6 = {{Code|pelna_nazwa_spisu_tresci}} | _6 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci|StronicowyParser/Rozdziały}}.
| 7 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _7 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}.
| 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _8 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
| 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _9 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}.
| 10 = {{Code|tab_nazwa_spisow_przekierowaniowych}} | _10 = Jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}}.
}}
Funckja wykorzustuje: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|NormaWzoruKodowaniaTekstu|StronicowyParser/Rozdziały}}, {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} - jak w: {{LinkPatrz|IteratorSzablonowyZakodowanegoTekstu|StronicowyParser/Rozdziały}}, i {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} - jak w: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki|StronicowyParser/Rozdziały}}.
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu/}}.
== {{Śródtytuł|p.HnNumerWprowadzeniaTekstu}}{{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}}.
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:
{{OpisParametrów
| 1 = {{Code|nazwa}} | _1 = Nazwa tagu typu {{Tag|h<numer>}}, gdzie: {{Code|<nowiki>0 < numer < 7</nowiki>}}.
| 2 = {{Code|atrybuty}} | _2 = Tabela atrybutów, których z jedną z elementów może być opcja: '''class'''.
}}
Funkcja wykorzystuje podtablicę: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.znaczniki_wprowadzenia_tekstu}}, tablicy transportu, którego link ma referencje do jej opisu, zdefiniowany w module: {{Code|{{ld2|StronicowyParser/obiekty}}}}, definicja jej jest w:
<syntaxhighlight lang="lua">
p.znaczniki_wprowadzenia_tekstu={
["h1"]=1,
["h2"]=2,
["h3"]=3,
["h4"]=4,
["h5"]=5,
["h6"]=6,
};
</syntaxhighlight>
Funkcja posługuje się jedynie na tych typach znaczników, a nie innych.
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu/}}.
== {{Śródtytuł|p.NumeracjaOrazTekstWprowadzeniaTekstu}}{{Code|p.NumeracjaOrazTekstWprowadzeniaTekstu}} ==
Funkcja zwraca numerację i rozdział całego rozdziału.
Funkcja jest 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 nim 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:
{{OpisParametrów
| 1 = {{Code|zawartosc}} | _1 = Zawartość rozdziału, jak w: {{LinkPatrz|zawartosc}}.
}}
=== Przykład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/StronicowyParser/Rozdziały/NumeracjaOrazTekstWprowadzeniaTekstu/}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
5gu7mpwazplsbqmtrmy33f7dgby75s9
Moduł:StronicowyParser/Pomocne
828
63964
557811
557798
2026-09-28T12:50:47Z
Persino
2851
557811
Scribunto
text/plain
local p={};
p["SkrótDoNumeruOdnośnika"]=function(__nazwa_bazowa_strony,__nazwa_modulu)
local techniczne_modul=require("Module:Techniczne");
local nazwy_modul=require("Module:Nazwy");
local strona;
repeat
local ile;local ile_kresek;
local nazwa_bazowa_strony=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](__nazwa_bazowa_strony);
strona,ile=mw.ustring.gsub(__nazwa_modulu,"^"..nazwa_bazowa_strony.."/","");
if(ile==0)then
local _;
_,ile_kresek=mw.ustring.gsub(__nazwa_bazowa_strony,"/",function()return;end);
__nazwa_bazowa_strony=nazwy_modul["PEŁNABAZOWANAZWASTRONY"](__nazwa_bazowa_strony);
end;
until((ile>0)or((ile_kresek)and(ile_kresek==0)));
local zrostek;
local ksiazka,podstrona,artykul=mw.ustring.match(strona,"^([^/]*)/(.*)/([^/]*)$");
if(ksiazka and podstrona and artykul)then
ksiazka=mw.ustring.gsub(ksiazka,"([%u%l])%l+[%u%l]*%p*%s*",function(znak)return mw.ustring.upper(znak)..".";end);
podstrona=mw.ustring.gsub(podstrona,"([%u%l])[^/]*/?",function(znak)return mw.ustring.upper(znak)..".";end);
artykul=mw.ustring.gsub(artykul,"([%u%l])%l+[%u%l]*%p*%s*",function(znak)return mw.ustring.upper(znak)..".";end);
zrostek=ksiazka..podstrona..artykul;
else
local ksiazka,artykul=mw.ustring.match(strona,"^([^/]*)/([^/]*)$");
if(ksiazka and artykul)then
ksiazka=mw.ustring.gsub(ksiazka,"([%u%l])%l+[%u%l]*%p*%s*",function(znak)return mw.ustring.upper(znak)..".";end);
artykul=mw.ustring.gsub(artykul,"([%u%l])%l+[%u%l]*%p*%s*",function(znak)return mw.ustring.upper(znak)..".";end);
zrostek=ksiazka..artykul;
else
zrostek=mw.ustring.gsub(strona,"([%u%l])%l+[%u%l]*%p*%s*",function(znak)return mw.ustring.upper(znak)..".";end);
end;
end;
return zrostek;
end;
p["SkrótDoNumeruOdnośnikaDołączonejKsiążki"]=function(nazwa_ksiazki)
nazwa_ksiazki=mw.ustring.gsub(nazwa_ksiazki,"^.-:%s*","");
local ksiazka=mw.ustring.gsub(nazwa_ksiazki,"([%u%l])%l+[%u%l]*%p*%s*",function(znak)return mw.ustring.upper(znak);end);
local ksiazka=mw.ustring.gsub(ksiazka,"([%u%l])%s+","%1");
return ksiazka;
end;
function p.DekodowanieTekstuNazwLinku(tekst,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,tryb,czy_nie_odstepy,drugi_wynik,czy_drugi_wynik_przetworzony)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local szablonowe_modul=require("Module:Szablonowe");
local szablony_dozwolone_w_nazwach_linkowych=stronicowyparser_obiekty_modul.szablony_dozwolone_w_nazwach_linkowych;
local szablony_rozwijane_przez_javascript_nazwowe_linkowe=stronicowyparser_obiekty_modul.szablony_rozwijane_przez_javascript_nazwowe_linkowe;
local function RozwijanieNazwy(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local tab_szablony=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_kontenerowe;
local tab_szablony_stronicowe_niekontenerowe=stronicowyparser_obiekty_modul.szablony_stronicowe_niekontenerowe;
local tab_szablony_stronicowe_formatowania_tekstu=stronicowyparser_obiekty_modul.szablony_stronicowe_formatowania_tekstu;
local tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego=stronicowyparser_obiekty_modul.szablony_stronicowe_kontenerowe_formatowania_wzorowego;
----
local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_w_nazwach_linkowych,nazwa_modulu_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
if(not wynik)then
local wynik,jaki_wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(szablony_rozwijane_przez_javascript_nazwowe_linkowe[nazwa_szablonu])then
local szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,
function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(
(tab_szablony[nazwa_szablonu])
or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu])
or(tab_szablony_stronicowe_formatowania_tekstu[nazwa_szablonu])
or(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu])
)then
tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwa_przestrzeni;
tabela_parametrow_szablonu["nazwa jednostki"]=tabela_parametrow_szablonu["nazwa jednostki"] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_spisu_tresci~="") and ("/"..nazwa_spisu_tresci) or ""));
return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true);
end;
end);
if(wynik)then return wynik;end;
end;
end);
return szablon,true;
elseif(nazwa_szablonu=="Br")then
return " ",false;
elseif(
(tab_szablony[nazwa_szablonu])
or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu])
or(tab_szablony_stronicowe_formatowania_tekstu[nazwa_szablonu])
or(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu])
)then
tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwa_przestrzeni;
tabela_parametrow_szablonu["nazwa jednostki"]=tabela_parametrow_szablonu["nazwa jednostki"] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_spisu_tresci~="") and ("/"..nazwa_spisu_tresci) or ""));
return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true),true;
end;
end);
if(wynik)then return wynik,jaki_wynik;end;
else
return wynik,false;
end;
return nil,true;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa=="br")then
return " ";
end;
end;
return szablon;
end;
local czy_szablon_wszystko=false;
tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
local wynik,czy_szablon=RozwijanieNazwy(szablon,obiekt,kod);
czy_szablon_wszystko=czy_szablon_wszystko or czy_szablon;
return wynik;
end);
if(czy_szablon_wszystko)then
local frame=mw.getCurrentFrame();
tekst=frame:preprocess(tekst);
end;
local function Tryb1(tekst)
local specjalne_modul=require("Module:Specjalne");
local parametry_modul=require("Module:Parametry");
tekst=specjalne_modul["UsuńZnakiSpecjalne"](tekst);
tekst=parametry_modul["Odstępy"]{[1]=tekst,[2]="tak",[4]="tak",};
return tekst;
end;
local function Tryb2(tekst)
local html_modul=require("Module:Html");
local tekst2;
tekst,tekst2=html_modul.DecodeHtml(tekst,true,nil,nil,czy_nie_odstepy,drugi_wynik,czy_drugi_wynik_przetworzony);
return tekst,tekst2;
end;
if((not tryb)or(tryb==1))then
return Tryb1(tekst);
elseif(tryb==2)then
return Tryb2(tekst);
elseif(tryb==3)then
local tekst,tekst2=Tryb2(tekst);
tekst2=Tryb1(tekst2);
return tekst,tekst2;
else
return tekst;
end;
end;
return p;
jmtl4j8c5f522bem95eokvlev1oxam5
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/TekstWprowadzeniaTekstu/Kod 1
828
64303
557891
556364
2026-09-29T05:30:52Z
Persino
2851
557891
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
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);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"strona",strona,},
{"id_rozdzialu1",id_rozdzialu1,},
{"id_rozdzialu2",id_rozdzialu2,},
{"tekst",tekst,},
});
return wikikod;
end;
return p;
bv8j0xmy5ojaitwmq9gb1ekue140ds9
Szablon:Jeśli istnieje
10
64334
557817
2026-09-28T16:22:33Z
Persino
2851
Utworzono nową stronę „<includeonly>{{#ifexist:{{{1}}}|{{{1}}}|{{{2}}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>”
557817
wikitext
text/x-wiki
<includeonly>{{#ifexist:{{{1}}}|{{{1}}}|{{{2}}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
morjjnun8cwqeuw5miac6g58xfwnhv8
557818
557817
2026-09-28T16:30:48Z
Persino
2851
557818
wikitext
text/x-wiki
<includeonly>{{#ifexist:{{{przedrostek|}}}{{{1}}}|{{{1}}}|{{{2}}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
s6aula90baca9ceu7o6jp43kd11jgd4
557858
557818
2026-09-29T03:35:10Z
Persino
2851
557858
wikitext
text/x-wiki
<includeonly>{{#ifexist:{{{przedrostek|}}}{{{1}}}|{{{wtedy|{{{1}}}}}}|{{{przeciwnie|{{{2}}}}}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
5lcm8ov1o9pc023lwsostxp3wvrg6kj
Szablon:Jeśli istnieje/opis
10
64335
557820
2026-09-28T16:37:29Z
Persino
2851
Utworzono nową stronę „{{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == == Opis parametrów == == Przykład == == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony warunkowe}} </includeonly>”
557820
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
== Opis parametrów ==
== Przykład ==
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
}
}
</templatedata>
== Zobacz też ==
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony warunkowe}}
</includeonly>
74mvljzjxoe58yd91sxq8w1t310cl88
557867
557820
2026-09-29T04:10:36Z
Persino
2851
/* Zobacz też */
557867
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
== Opis parametrów ==
== Przykład ==
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
}
}
</templatedata>
== Zobacz też ==
{{Jeśli równe/opis/Zobacz też}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony warunkowe}}
</includeonly>
g2eotvk8lmrvlsg9fimlat8okcpq681
Szablon:MONTHMSC/opis
10
64336
557846
2026-09-28T19:08:01Z
Persino
2851
Utworzono nową stronę „{{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon zwraca nazwę miesiąca w miejscowniku. Przyjmuje jeden parametr: numer lub nazwę miesiąca w mianowniku. W przypadku niepodania parametru lub podania błędnego szablon domyślnie wywołuje się dla bieżącego miesiąca. == Opis parametrów == == Przykład == Przykłady: * {{Code|{{s|MONTHMSC}}}} ---> {{MONTHMSC}} * {{Code|{{s|MONTHMSC|7}}}} ---> {{MONTHMSC|7}} * {{…”
557846
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Szablon zwraca nazwę miesiąca w miejscowniku. Przyjmuje jeden parametr: numer lub nazwę miesiąca w mianowniku. W przypadku niepodania parametru lub podania błędnego szablon domyślnie wywołuje się dla bieżącego miesiąca.
== Opis parametrów ==
== Przykład ==
Przykłady:
* {{Code|{{s|MONTHMSC}}}} ---> {{MONTHMSC}}
* {{Code|{{s|MONTHMSC|7}}}} ---> {{MONTHMSC|7}}
* {{Code|{{s|MONTHMSC|02}}}} ---> {{MONTHMSC|02}}
* {{Code|{{s|MONTHMSC|marzec}}}} ---> {{MONTHMSC|marzec}}
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
}
}
</templatedata>
== Zobacz też ==
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony daty i czasu}}
</includeonly>
5tvl3jb88zkhi0u95qcxnqefee4sxxf
Szablon:NUMBEROFDAYS/opis
10
64337
557852
2026-09-28T19:23:03Z
Persino
2851
Utworzono nową stronę „{{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon zwraca liczbę dni w miesiącu. Jako argument należy podać nazwę miesiąca w mianowniku lub numer odpowiadający kolejności miesiąca w roku. W przypadku nie podania argumentu szablon zwraca wartość domyślną - 31. == Opis parametrów == == Przykład == == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Struktu…”
557852
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Szablon zwraca liczbę dni w miesiącu. Jako argument należy podać nazwę miesiąca w mianowniku lub numer odpowiadający kolejności miesiąca w roku. W przypadku nie podania argumentu szablon zwraca wartość domyślną - 31.
== Opis parametrów ==
== Przykład ==
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
}
}
</templatedata>
== Zobacz też ==
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony daty i czasu}}
</includeonly>
8v9pq5oypy5cvxv2rze349jfj3wtvkq
Szablon:ISYEARLEAP/opis
10
64338
557854
2026-09-28T19:25:17Z
Persino
2851
Utworzono nową stronę „{{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon zwraca '''"1"''', jeśli rok podany jako pierwszy parametr '''jest przestępny''' oraz "0" w przeciwnym wypadku. Jeśli nie podano żadnego parametru, to sprawdzany jest biężący rok ({{CURRENTYEAR}}→{{ISYEARLEAP}}). == Opis parametrów == == Przykład == == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Struk…”
557854
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Szablon zwraca '''"1"''', jeśli rok podany jako pierwszy parametr '''jest przestępny''' oraz "0" w przeciwnym wypadku. Jeśli nie podano żadnego parametru, to sprawdzany jest biężący rok ({{CURRENTYEAR}}→{{ISYEARLEAP}}).
== Opis parametrów ==
== Przykład ==
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
}
}
</templatedata>
== Zobacz też ==
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony daty i czasu}}
</includeonly>
n10jic72zrpu6xli8tslvlr9k3w1ms9
Szablon:Jeśli równe/opis/Zobacz też
10
64339
557864
2026-09-29T04:08:53Z
Persino
2851
Utworzono nową stronę „<includeonly> ; Szablony potrzebne do obliczeń * {{s|Maksimum}} i {{s|Max}} (przekierowanie) - szablony zwracają większą liczbę z dwóch, ewentualnie z absolutną jednostką długości, * {{s|Minimum}} i {{s|Min}} (przekierowanie) - szablony zwracają mniejszą liczbę z dwóch, ewentualnie z absolutną jednostką długości, * {{s|Liczba z absolutną jednostką długości}} - szablon sprawdza, czy w nim parametr jest z absolutną jednostką długości, je…”
557864
wikitext
text/x-wiki
<includeonly>
; Szablony potrzebne do obliczeń
* {{s|Maksimum}} i {{s|Max}} (przekierowanie) - szablony zwracają większą liczbę z dwóch, ewentualnie z absolutną jednostką długości,
* {{s|Minimum}} i {{s|Min}} (przekierowanie) - szablony zwracają mniejszą liczbę z dwóch, ewentualnie z absolutną jednostką długości,
* {{s|Liczba z absolutną jednostką długości}} - szablon sprawdza, czy w nim parametr jest z absolutną jednostką długości, jeżeli jest, to zwraca tą liczbę, a jeżeli nie, to zwraca tą liczbę z dopiskiem {{Code|px}},
* {{s|W pikselach}} - szablon przelicza miary w różnych obsługiwanych jednostkach CSS na piksele, bez podania jednostki {{Code|px}}.
; Komunikaty szablonu warunkowego
* {{s|jeśli niepuste komunikat}} - jeśli pierwszy parametr jest niepusty, to szablon zwraca komunikat błędu, przeciwnym przypadku zwraca inną zawartość tego szablonu wstawioną jako parametr szablonu.
; Szablon wybierania pierwszego niepustego z dwóch
* {{s|Jeśli niepuste}} - szablon zwraca pierwszy parametr, jeśli on nie jest pusty, w przeciwnym przypadku drugi.<!--
--></includeonly><noinclude><!--
-->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Zobacz też''', do opisu szablonów związanych z {{s|Jeśli równe}}.}}<!--
-->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!--
--></noinclude>
ttqp3piq5j60l1l12m1b0a3nzbqtp2f
557871
557864
2026-09-29T04:22:28Z
Persino
2851
557871
wikitext
text/x-wiki
<includeonly>
; Szablony potrzebne do obliczeń{{dk}}
* {{s|Maksimum}} i {{s|Max}} (przekierowanie) - szablony zwracają większą liczbę z dwóch, ewentualnie z absolutną jednostką długości,
* {{s|Minimum}} i {{s|Min}} (przekierowanie) - szablony zwracają mniejszą liczbę z dwóch, ewentualnie z absolutną jednostką długości,
* {{s|Liczba z absolutną jednostką długości}} - szablon sprawdza, czy w nim parametr jest z absolutną jednostką długości, jeżeli jest, to zwraca tą liczbę, a jeżeli nie, to zwraca tą liczbę z dopiskiem {{Code|px}},
* {{s|W pikselach}} - szablon przelicza miary w różnych obsługiwanych jednostkach CSS na piksele, bez podania jednostki {{Code|px}}.
; Błędy zwracane przez {{NS|l=tak}}{{dk}}
* {{s|Jeśli błąd}} - jeśli jest błąd, to wyświetl w zależności od zmiennych wyniki.
; Komunikaty szablonu warunkowego{{dk}}
* {{s|jeśli niepuste komunikat}} - jeśli pierwszy parametr jest niepusty, to szablon zwraca komunikat błędu, przeciwnym przypadku zwraca inną zawartość tego szablonu wstawioną jako parametr szablonu.
; Szablon wybierania pierwszego niepustego, czy istniejącego, z dwóch{{dk}}
* {{s|Jeśli niepuste}} - szablon zwraca pierwszy parametr, jeśli on nie jest pusty, w przeciwnym przypadku drugi.
* {{s|Jeśli istnieje}} - szablon zwraca pierwszy parametr, jeśli on istnieje na {{NS|l=tak|pk=d}}, w przeciwnym przypadku drugi.
; Szablony porównań{{dk}}
* {{s|Jeśli równe}} - szablon sprawdza, czy dana pierwsza jest równa drugiej, i w zależności od tego zwraca wyniki.
* {{s|Jeśli większe}} - szablon sprawdza, czy dana pierwsza jest równa drugiej, i w zależności od tego zwraca wyniki.<!--
--></includeonly><noinclude><!--
-->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Zobacz też''', do opisu szablonów związanych z {{s|Jeśli równe}}.}}<!--
-->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!--
--></noinclude>
epn37ic99h5wp9taxqzsrvbvlmewxfj
557876
557871
2026-09-29T04:34:44Z
Persino
2851
557876
wikitext
text/x-wiki
<includeonly>
; Szablony potrzebne do obliczeń{{dk}}
* {{s|Maksimum}} i {{s|Max}} (przekierowanie) - szablony zwracają większą liczbę z dwóch, ewentualnie z absolutną jednostką długości,
* {{s|Minimum}} i {{s|Min}} (przekierowanie) - szablony zwracają mniejszą liczbę z dwóch, ewentualnie z absolutną jednostką długości,
* {{s|Liczba z absolutną jednostką długości}} - szablon sprawdza, czy w nim parametr jest z absolutną jednostką długości, jeżeli jest, to zwraca tą liczbę, a jeżeli nie, to zwraca tą liczbę z dopiskiem {{Code|px}},
* {{s|W pikselach}} - szablon przelicza miary w różnych obsługiwanych jednostkach CSS na piksele, bez podania jednostki {{Code|px}}.
; Błędy zwracane przez {{NS|l=tak}}{{dk}}
* {{s|Jeśli błąd}} - jeśli jest błąd, to wyświetl w zależności od zmiennych wyniki.
; Komunikaty szablonu warunkowego{{dk}}
* {{s|jeśli niepuste komunikat}} - jeśli pierwszy parametr jest niepusty, to szablon zwraca komunikat błędu, przeciwnym przypadku zwraca inną zawartość tego szablonu wstawioną jako parametr szablonu.
; Szablon wybierania pierwszego niepustego, czy istniejącego, z dwóch{{dk}}
* {{s|Jeśli niepuste}} - szablon zwraca pierwszy parametr, jeśli on nie jest pusty, w przeciwnym przypadku drugi.
* {{s|Jeśli istnieje}} - szablon zwraca pierwszy parametr, jeśli on istnieje na {{NS|l=tak|pk=mj}}, w przeciwnym przypadku drugi.
; Szablony porównań{{dk}}
* {{s|Jeśli równe}} - szablon sprawdza, czy dana pierwsza jest równa drugiej, i w zależności od tego zwraca wyniki.
* {{s|Jeśli większe}} - szablon sprawdza, czy dana pierwsza jest równa drugiej, i w zależności od tego zwraca wyniki.<!--
--></includeonly><noinclude><!--
-->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Zobacz też''', do opisu szablonów związanych z {{s|Jeśli równe}}.}}<!--
-->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!--
--></noinclude>
0kpq1jr8uun332fr7dse57yvzlw9gab
557877
557876
2026-09-29T04:35:39Z
Persino
2851
557877
wikitext
text/x-wiki
<includeonly>
; Szablony potrzebne do obliczeń{{dk}}
* {{s|Maksimum}} i {{s|Max}} (przekierowanie) - szablony zwracają większą liczbę z dwóch, ewentualnie z absolutną jednostką długości,
* {{s|Minimum}} i {{s|Min}} (przekierowanie) - szablony zwracają mniejszą liczbę z dwóch, ewentualnie z absolutną jednostką długości,
* {{s|Liczba z absolutną jednostką długości}} - szablon sprawdza, czy w nim parametr jest z absolutną jednostką długości, jeżeli jest, to zwraca tą liczbę, a jeżeli nie, to zwraca tą liczbę z dopiskiem {{Code|px}},
* {{s|W pikselach}} - szablon przelicza miary w różnych obsługiwanych jednostkach CSS na piksele, bez podania jednostki {{Code|px}}.
; Błędy zwracane przez {{NS|w=tak|l=tak}}{{dk}}
* {{s|Jeśli błąd}} - jeśli jest błąd, to wyświetl w zależności od zmiennych wyniki.
; Komunikaty szablonu warunkowego{{dk}}
* {{s|jeśli niepuste komunikat}} - jeśli pierwszy parametr jest niepusty, to szablon zwraca komunikat błędu, przeciwnym przypadku zwraca inną zawartość tego szablonu wstawioną jako parametr szablonu.
; Szablon wybierania pierwszego niepustego, czy istniejącego, z dwóch{{dk}}
* {{s|Jeśli niepuste}} - szablon zwraca pierwszy parametr, jeśli on nie jest pusty, w przeciwnym przypadku drugi.
* {{s|Jeśli istnieje}} - szablon zwraca pierwszy parametr, jeśli on istnieje na {{NS|l=tak|pk=mj}}, w przeciwnym przypadku drugi.
; Szablony porównań{{dk}}
* {{s|Jeśli równe}} - szablon sprawdza, czy dana pierwsza jest równa drugiej, i w zależności od tego zwraca wyniki.
* {{s|Jeśli większe}} - szablon sprawdza, czy dana pierwsza jest równa drugiej, i w zależności od tego zwraca wyniki.<!--
--></includeonly><noinclude><!--
-->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Zobacz też''', do opisu szablonów związanych z {{s|Jeśli równe}}.}}<!--
-->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!--
--></noinclude>
56dw0pa6iw4lfs22nkxc41gag7oeyuk
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstu/Kod 1
828
64340
557892
2026-09-29T05:33:44Z
Persino
2851
Utworzono nową stronę „require("strict"); local p={}; p["Przykład"]=function(frame) 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); local zrodlolua_modul=require("Module:ŹródłoLua"); local wikikod=zrodlolua_modul["Źr…”
557892
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
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);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"rozdzial",rozdzial,},
{"napis_rozdzialu1",napis_rozdzialu1,},
{"napis_rozdzialu2",napis_rozdzialu2,},
});
return wikikod;
end;
return p;
c0nnwj03peios3y8rcowcm55bc76b2a
557893
557892
2026-09-29T05:37:22Z
Persino
2851
557893
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local rozdzial="Tekst rozdziału";
local poziom_rozdzialu1=4;
local napis_rozdzialu1=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstu(rozdzial,poziom_rozdzialu1);
local poziom_rozdzialu2=8;
local napis_rozdzialu2=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstu(rozdzial,poziom_rozdzialu2);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"rozdzial",rozdzial,},
{"poziom_rozdzialu1",poziom_rozdzialu1,},
{"napis_rozdzialu1",napis_rozdzialu1,},
{"poziom_rozdzialu2",poziom_rozdzialu2,},
{"napis_rozdzialu2",napis_rozdzialu2,},
});
return wikikod;
end;
return p;
8py0dvxw4foabwfvle6q3mm7rdwv67j
557987
557893
2026-09-29T11:13:35Z
Persino
2851
557987
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local rozdzial="Tekst rozdziału";
local poziom_rozdzialu1=4;
local tab_atrybuty={["id"]="identyfikator",["class"]="klasa1 klasa2",};
local napis_rozdzialu1=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstuHn(rozdzial,poziom_rozdzialu1,tab_atrybuty);
local poziom_rozdzialu2=8;
local napis_rozdzialu2=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstuHn(rozdzial,poziom_rozdzialu2,tab_atrybuty);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"rozdzial",rozdzial,},
{"poziom_rozdzialu1",poziom_rozdzialu1,},
{"poziom_rozdzialu2",poziom_rozdzialu2,},
{"tab_atrybuty",tab_atrybuty,},
{"napis_rozdzialu1",napis_rozdzialu1,},
{"napis_rozdzialu2",napis_rozdzialu2,},
});
return wikikod;
end;
return p;
qbjbwam8qkyvh7907cairv8orhkihdt
557988
557987
2026-09-29T11:15:12Z
Persino
2851
Anulowano wersję [[Special:Diff/557987|557987]] autorstwa [[Special:Contributions/Persino|Persino]] ([[User talk:Persino|dyskusja]])
557988
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local rozdzial="Tekst rozdziału";
local poziom_rozdzialu1=4;
local napis_rozdzialu1=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstu(rozdzial,poziom_rozdzialu1);
local poziom_rozdzialu2=8;
local napis_rozdzialu2=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstu(rozdzial,poziom_rozdzialu2);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"rozdzial",rozdzial,},
{"poziom_rozdzialu1",poziom_rozdzialu1,},
{"napis_rozdzialu1",napis_rozdzialu1,},
{"poziom_rozdzialu2",poziom_rozdzialu2,},
{"napis_rozdzialu2",napis_rozdzialu2,},
});
return wikikod;
end;
return p;
8py0dvxw4foabwfvle6q3mm7rdwv67j
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstu/Kod 1/opis
828
64341
557894
2026-09-29T05:38:34Z
Persino
2851
Utworzono nową stronę „{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}”
557894
wikitext
text/x-wiki
{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}
i7c35wj7jmf6evuqteywkwemwpf4vz1
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstuHNumer/Kod 1
828
64342
557896
2026-09-29T06:01:37Z
Persino
2851
Utworzono nową stronę „require("strict"); local p={}; p["Przykład"]=function(frame) ---- 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.NapisWprowa…”
557896
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
---- 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);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"tekst1",tekst1,},
{"naglowek1",naglowek1,},
{"tekst2",tekst2,},
{"naglowek2",naglowek2,},
});
return wikikod;
end;
return p;
4yic0ax84jzfmhx01f5a8jc53qn85sk
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstuHNumer/Kod 1/opis
828
64343
557897
2026-09-29T06:03:24Z
Persino
2851
Utworzono nową stronę „{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}”
557897
wikitext
text/x-wiki
{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}
i7c35wj7jmf6evuqteywkwemwpf4vz1
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/PodajNapisPoziomuWprowadzeniaTekstu/Kod 1
828
64344
557898
2026-09-29T06:08:34Z
Persino
2851
Utworzono nową stronę „require("strict"); local p={}; p["Przykład"]=function(frame) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="====== Tekst rozdziału ======"; local naglowek,poziom=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(tekst); local zrodlolua_modul=require("Module:ŹródłoLua"); local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{ {"tekst",tekst,}, {"naglowek",naglowek,}, {"poziom",…”
557898
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local tekst="====== Tekst rozdziału ======";
local naglowek,poziom=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(tekst);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"tekst",tekst,},
{"naglowek",naglowek,},
{"poziom",poziom,},
});
return wikikod;
end;
return p;
gmt2ahxd61nvuo4akpbw8q8lbw0s3ty
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/PodajNapisPoziomuWprowadzeniaTekstu/Kod 1/opis
828
64345
557899
2026-09-29T06:09:13Z
Persino
2851
Utworzono nową stronę „{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}”
557899
wikitext
text/x-wiki
{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}
i7c35wj7jmf6evuqteywkwemwpf4vz1
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/PodajTekstHNumerNapisuWprowadzeniaTekstu/Kod 1
828
64346
557900
2026-09-29T06:12:22Z
Persino
2851
Utworzono nową stronę „require("strict"); local p={}; p["Przykład"]=function(frame) 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); local zrodlolua_modul=require("Module:ŹródłoLua"); local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{ {"tekst",tekst,}, {"zawartosc",z…”
557900
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
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);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"tekst",tekst,},
{"zawartosc",zawartosc,},
{"poziom",poziom,},
});
return wikikod;
end;
return p;
ns84jjkjwf7s9hn72q2s56l3tyaix7n
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/PodajTekstHNumerNapisuWprowadzeniaTekstu/Kod 1/opis
828
64347
557901
2026-09-29T06:13:31Z
Persino
2851
Utworzono nową stronę „{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}”
557901
wikitext
text/x-wiki
{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}
i7c35wj7jmf6evuqteywkwemwpf4vz1
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestNapisWprowadzeniaTekstu/Kod 1
828
64348
557902
2026-09-29T06:16:37Z
Persino
2851
Utworzono nową stronę „require("strict"); local p={}; p["Przykład"]=function(frame) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst="Oto jest tekst\n== Tekst rozdziału == \n Oto jest dalszy tekst\n"; local napis_pierwszy_w_tekscie=stronicowyparser_rozdzialy_modul.CzyJestNapisWprowadzeniaTekstu(tekst); local zrodlolua_modul=require("Module:ŹródłoLua"); local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{ {"tekst",tekst,}…”
557902
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local tekst="Oto jest tekst\n== Tekst rozdziału == \n Oto jest dalszy tekst\n";
local napis_pierwszy_w_tekscie=stronicowyparser_rozdzialy_modul.CzyJestNapisWprowadzeniaTekstu(tekst);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"tekst",tekst,},
{"napis_pierwszy_w_tekscie",napis_pierwszy_w_tekscie,},
});
return wikikod;
end;
return p;
p9q40sxwa994t2pbhf5k4gg7myxk55n
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestNapisWprowadzeniaTekstu/Kod 1/opis
828
64349
557903
2026-09-29T06:17:32Z
Persino
2851
Utworzono nową stronę „{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}”
557903
wikitext
text/x-wiki
{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}
i7c35wj7jmf6evuqteywkwemwpf4vz1
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestListaNapisuWprowadzeniaTekstu/Kod 1
828
64350
557904
2026-09-29T06:20:25Z
Persino
2851
Utworzono nową stronę „require("strict"); local p={}; p["Przykład"]=function(frame) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local zawartosc="Oto jest tekst\n:* Tekst nagłówka ujemnego\n"; local lista=stronicowyparser_rozdzialy_modul.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc); local zrodlolua_modul=require("Module:ŹródłoLua"); local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{ {"zawartosc",zawartosc,}, {"lista",list…”
557904
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local zawartosc="Oto jest tekst\n:* Tekst nagłówka ujemnego\n";
local lista=stronicowyparser_rozdzialy_modul.CzyJestListaNapisuWprowadzeniaTekstu(zawartosc);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"zawartosc",zawartosc,},
{"lista",lista,},
});
return wikikod;
end;
return p;
ki11sam8nd7t4etmfywqef0c6v1j7g4
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyJestListaNapisuWprowadzeniaTekstu/Kod 1/opis
828
64351
557905
2026-09-29T06:21:39Z
Persino
2851
Utworzono nową stronę „{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}”
557905
wikitext
text/x-wiki
{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}
i7c35wj7jmf6evuqteywkwemwpf4vz1
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/SprawdzanieCzyToJestNapisWprowadzeniaTekstu/Kod 1
828
64352
557907
2026-09-29T06:26:32Z
Persino
2851
Utworzono nową stronę „require("strict"); local p={}; p["Przykład"]=function(frame) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local tekst1="====== Tekst rozdziału ======"; local tekst2="<h5 class=\"plainlinks\">Tekst rozdziału</h5>"; local czy_jest_naglowek1,jaki_naglowek1=stronicowyparser_rozdzialy_modul.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(tekst1); local czy_jest_naglowek2,jaki_naglowek2=stronicowyparser_rozdzialy_modul.Spra…”
557907
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local tekst1="====== Tekst rozdziału ======";
local tekst2="<h5 class=\"plainlinks\">Tekst rozdziału</h5>";
local czy_jest_naglowek1,jaki_naglowek1=stronicowyparser_rozdzialy_modul.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(tekst1);
local czy_jest_naglowek2,jaki_naglowek2=stronicowyparser_rozdzialy_modul.SprawdzanieCzyToJestNapisWprowadzeniaTekstu(tekst2);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"tekst1",tekst1,},
{"czy_jest_naglowek1",czy_jest_naglowek1,},
{"jaki_naglowek1",jaki_naglowek1,},
{"tekst2",tekst2,},
{"czy_jest_naglowek2",czy_jest_naglowek2,},
{"jaki_naglowek2",jaki_naglowek2,},
});
return wikikod;
end;
return p;
kywzx900wuin981tbvs2uajmen16kiz
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/SprawdzanieCzyToJestNapisWprowadzeniaTekstu/Kod 1/opis
828
64353
557908
2026-09-29T06:27:24Z
Persino
2851
Utworzono nową stronę „{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}”
557908
wikitext
text/x-wiki
{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}
i7c35wj7jmf6evuqteywkwemwpf4vz1
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/WierszHNumer/Kod 1
828
64354
557909
2026-09-29T06:29:48Z
Persino
2851
Utworzono nową stronę „require("strict"); local p={}; p["Przykład"]=function(frame) 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); local zrodlolua_modul=require("Module:ŹródłoLua"); local wikikod=zrodlolua_m…”
557909
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
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);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"tekst",tekst,},
{"wynik",wynik,},
});
return wikikod;
end;
return p;
cffybusmwjtrzycda1t7vntpov1kpky
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/WierszHNumer/Kod 1/opis
828
64355
557910
2026-09-29T06:30:28Z
Persino
2851
Utworzono nową stronę „{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}”
557910
wikitext
text/x-wiki
{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}
i7c35wj7jmf6evuqteywkwemwpf4vz1
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu/Kod 1
828
64356
557911
2026-09-29T06:34:16Z
Persino
2851
Utworzono nową stronę „require("strict"); local p={}; p["Przykład"]=function(frame) 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); local zrodlolua_modul=require("Module:ŹródłoLua"); local wikikod=zrodlolua_modul["ŹródłoLua"](frame…”
557911
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
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);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"rozdzial_z_numeracja",rozdzial_z_numeracja,},
{"rozdzial",rozdzial,},
{"numeracja",numeracja,},
});
return wikikod;
end;
return p;
mgai2wl65vuik1inrs1bluj376n9rzv
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu/Kod 1/opis
828
64357
557912
2026-09-29T06:34:57Z
Persino
2851
Utworzono nową stronę „{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}”
557912
wikitext
text/x-wiki
{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}
i7c35wj7jmf6evuqteywkwemwpf4vz1
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu/Kod 2
828
64358
557913
2026-09-29T06:36:11Z
Persino
2851
Utworzono nową stronę „require("strict"); local p={}; p["Przykład"]=function(frame) 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); local zrodlolua_modul=require("Module:ŹródłoLua"); local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{ {"ro…”
557913
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
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);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"rozdzial_z_numeracja",rozdzial_z_numeracja,},
{"rozdzial",rozdzial,},
{"numeracja",numeracja,},
});
return wikikod;
end;
return p;
2whstfo1hnt7mptxo3ikdv2uor0i2m7
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu/Kod 2/opis
828
64359
557914
2026-09-29T06:36:38Z
Persino
2851
Utworzono nową stronę „{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}”
557914
wikitext
text/x-wiki
{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}
i7c35wj7jmf6evuqteywkwemwpf4vz1
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/Kod 1
828
64360
557915
2026-09-29T06:40:23Z
Persino
2851
Utworzono nową stronę „require("strict"); local p={}; p["Przykład"]=function(frame) 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(linia…”
557915
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
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(linia,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);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"tekst",tekst,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
6vguwuiggyrkxpe8vfd1b7atvy7syct
557916
557915
2026-09-29T06:41:25Z
Persino
2851
557916
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
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");
local tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,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);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"tekst",tekst,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
blu98nbb7eefppw7z7wl8xa1wnks20l
557919
557916
2026-09-29T06:47:10Z
Persino
2851
557919
Scribunto
text/plain
require("strict");
local p={};
p.Podstawowe=function(linia)
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");
local tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,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);
return tekst,rozdzial,czy_tak;
end;
p["Przykład"]=function(frame)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local linia="Spis treści";
local tekst,rozdzial,czy_tak=p.Podstawowe(linia);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"tekst",tekst,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
5joebfkc5aydmpibkwykc5262fiwfgs
557920
557919
2026-09-29T06:47:42Z
Persino
2851
557920
Scribunto
text/plain
require("strict");
local p={};
p.Podstawowe=function(linia)
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");
local tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul);
---- Koniec tej części kodu;
local tablica_danych_parametrow_szablonu_strony={};
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local rozdzial,czy_tak=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
return tekst,rozdzial,czy_tak;
end;
p["Przykład"]=function(frame)
local linia="Spis treści";
local tekst,rozdzial,czy_tak=p.Podstawowe(linia);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"tekst",tekst,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
gqukknaoksihljvfcl3o5a58ao3jh2j
557924
557920
2026-09-29T06:54:23Z
Persino
2851
557924
Scribunto
text/plain
require("strict");
local p={};
p["PodstawowyKodPrzykładu"]=function(linia)
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");
local tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul);
---- Koniec tej części kodu;
local tablica_danych_parametrow_szablonu_strony={};
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local rozdzial,czy_tak=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,"",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
return tekst,rozdzial,czy_tak;
end;
p["Przykład"]=function(frame)
local linia="Spis treści";
local tekst,rozdzial,czy_tak=p["PodstawowyKodPrzykładu"](linia);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"tekst",tekst,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
j9puvk2lji0r69l5u38iahsberp6dqs
557929
557924
2026-09-29T07:04:12Z
Persino
2851
557929
Scribunto
text/plain
require("strict");
local p={};
p["PodstawowyKodPrzykładu"]=function(linia)
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");
local tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul);
---- Koniec tej części kodu;
local tablica_danych_parametrow_szablonu_strony={};
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local rozdzial,czy_tak=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,"","",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
return tekst,rozdzial,czy_tak;
end;
p["Przykład"]=function(frame)
local linia="Spis treści";
local tekst,rozdzial,czy_tak=p["PodstawowyKodPrzykładu"](linia);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"tekst",tekst,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
t96kptyzervf259y6ycuav285jrccai
557942
557929
2026-09-29T07:39:15Z
Persino
2851
557942
Scribunto
text/plain
require("strict");
local p={};
p["PodstawowyKodPrzykładu"]=function(linia)
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");
local tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul);
---- Koniec tej części kodu;
local tablica_danych_parametrow_szablonu_strony={};
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local strona="Podręcznik";
local strona_szablonowa=szablonowe_modul["SzablonowaKompletnaNazwaStrony"](strona);
local rozdzial,czy_tak=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,"","",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
return tekst,strona,strona_szablonowa,rozdzial,czy_tak;
end;
p["Przykład"]=function(frame)
local linia="Spis treści";
local tekst,strona,strona_szablonowa,rozdzial,czy_tak=p["PodstawowyKodPrzykładu"](linia);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"tekst",tekst,},
{"strona",strona,},
{"strona_szablonowa",strona_szablonowa,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
snn8dtwx93hn4u3ddgz0qp5wmt5pnz1
557950
557942
2026-09-29T07:53:02Z
Persino
2851
557950
Scribunto
text/plain
require("strict");
local p={};
p["PodstawowyKodPrzykładu"]=function(linia)
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");
local strona="Podręcznik";
local strona_szablonowa=szablonowe_modul["SzablonowaKompletnaNazwaStrony"](strona);
local tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul);
---- Koniec tej części kodu;
local tablica_danych_parametrow_szablonu_strony={};
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local rozdzial,czy_tak=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,strona,strona_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
return strona,strona_szablonowa,tekst,rozdzial,czy_tak;
end;
p["Przykład"]=function(frame)
local linia="Spis treści";
local strona,strona_szablonowa,tekst,rozdzial,czy_tak=p["PodstawowyKodPrzykładu"](linia);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"strona",strona,},
{"strona_szablonowa",strona_szablonowa,},
{"tekst",tekst,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
egyib5ciaikwuqjyjeu9cawjd15xv96
557953
557950
2026-09-29T08:09:56Z
Persino
2851
557953
Scribunto
text/plain
require("strict");
local p={};
p["PodstawowyKodPrzykładu"]=function(linia)
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");
local strona="Książka";
local strona_szablonowa=szablonowe_modul["SzablonowaKompletnaNazwaStrony"](strona);
local tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul);
---- Koniec tej części kodu;
local tablica_danych_parametrow_szablonu_strony={};
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local rozdzial,czy_tak=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,strona,strona_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
return strona,strona_szablonowa,tekst,rozdzial,czy_tak;
end;
p["Przykład"]=function(frame)
local linia="Spis treści";
local strona,strona_szablonowa,tekst,rozdzial,czy_tak=p["PodstawowyKodPrzykładu"](linia);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"strona",strona,},
{"strona_szablonowa",strona_szablonowa,},
{"tekst",tekst,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
5adkfy0ywflpgomsht64oujdgi9xpei
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/Kod 2
828
64361
557917
2026-09-29T06:42:51Z
Persino
2851
Utworzono nową stronę „require("strict"); local p={}; p["Przykład"]=function(frame) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local linia="'''Nagłówek'''"; 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"); local tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWiki…”
557917
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local linia="'''Nagłówek'''";
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");
local tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,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);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"tekst",tekst,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
b59f3yuks4mc1z7py0m6pcaclp6h0qd
557921
557917
2026-09-29T06:51:06Z
Persino
2851
557921
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local linia="'''Nagłówek'''";
local wikibooks_przyklad_stronicowyparser_rozdzialy_czyzerowynapiswprowadzeniatekstu_kod_1=require("Module:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/Kod 1");
local tekst,rozdzial,czy_tak=p.Podstawowe(linia);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"tekst",tekst,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
e6jijs9aks7owzt35v8r54lv2dygvh3
557922
557921
2026-09-29T06:51:37Z
Persino
2851
557922
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local linia="'''Nagłówek'''";
local wikibooks_przyklad_stronicowyparser_rozdzialy_czyzerowynapiswprowadzeniatekstu_kod_1=require("Module:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/Kod 1");
local tekst,rozdzial,czy_tak=wikibooks_przyklad_stronicowyparser_rozdzialy_czyzerowynapiswprowadzeniatekstu_kod_1.Podstawowe(linia);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"tekst",tekst,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
ck5if14i830dct4qi2wjecv5cn0t2is
557925
557922
2026-09-29T06:54:50Z
Persino
2851
557925
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local linia="'''Nagłówek'''";
local wikibooks_przyklad_stronicowyparser_rozdzialy_czyzerowynapiswprowadzeniatekstu_kod_1=require("Module:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/Kod 1");
local tekst,rozdzial,czy_tak=wikibooks_przyklad_stronicowyparser_rozdzialy_czyzerowynapiswprowadzeniatekstu_kod_1["PodstawowyKodPrzykładu"](linia);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"tekst",tekst,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
c0kw29f4f3xsqaifk02uomgosoic0xd
557943
557925
2026-09-29T07:40:31Z
Persino
2851
557943
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local linia="'''Nagłówek'''";
local wikibooks_przyklad_stronicowyparser_rozdzialy_czyzerowynapiswprowadzeniatekstu_kod_1=require("Module:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/Kod 1");
local tekst,strona,strona_szablonowa,rozdzial,czy_tak=wikibooks_przyklad_stronicowyparser_rozdzialy_czyzerowynapiswprowadzeniatekstu_kod_1["PodstawowyKodPrzykładu"](linia);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"tekst",tekst,},
{"strona",strona,},
{"strona_szablonowa",strona_szablonowa,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
mszvsokvrfakw7syn1krs3esxrw1pz8
557951
557943
2026-09-29T07:54:24Z
Persino
2851
557951
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local linia="'''Nagłówek'''";
local wikibooks_przyklad_stronicowyparser_rozdzialy_czyzerowynapiswprowadzeniatekstu_kod_1=require("Module:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/Kod 1");
local strona,strona_szablonowa,tekst,rozdzial,czy_tak=wikibooks_przyklad_stronicowyparser_rozdzialy_czyzerowynapiswprowadzeniatekstu_kod_1["PodstawowyKodPrzykładu"](linia);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"strona",strona,},
{"strona_szablonowa",strona_szablonowa,},
{"tekst",tekst,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
h0h4id2bo4lup209lckxmncnixrxkgx
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/Kod 3
828
64362
557918
2026-09-29T06:43:52Z
Persino
2851
Utworzono nową stronę „require("strict"); local p={}; p["Przykład"]=function(frame) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local linia="'''Nagłówek'''."; 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"); local tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWik…”
557918
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local linia="'''Nagłówek'''.";
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");
local tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,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);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"tekst",tekst,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
bas3dxtq3nen4kbovua9ochrs00gm3g
557923
557918
2026-09-29T06:52:58Z
Persino
2851
557923
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local linia="'''Nagłówek'''.";
local wikibooks_przyklad_stronicowyparser_rozdzialy_czyzerowynapiswprowadzeniatekstu_kod_1=require("Module:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/Kod 1");
local tekst,rozdzial,czy_tak=wikibooks_przyklad_stronicowyparser_rozdzialy_czyzerowynapiswprowadzeniatekstu_kod_1.Podstawowe(linia);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"tekst",tekst,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
4o18zxwr6nq3z5wf6nomjape383gkw6
557926
557923
2026-09-29T06:55:19Z
Persino
2851
557926
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local linia="'''Nagłówek'''.";
local wikibooks_przyklad_stronicowyparser_rozdzialy_czyzerowynapiswprowadzeniatekstu_kod_1=require("Module:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/Kod 1");
local tekst,rozdzial,czy_tak=wikibooks_przyklad_stronicowyparser_rozdzialy_czyzerowynapiswprowadzeniatekstu_kod_1["PodstawowyKodPrzykładu"](linia);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"tekst",tekst,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
op65fyku6c2v0u6s9yi5ugu5rnk8u41
557944
557926
2026-09-29T07:41:07Z
Persino
2851
557944
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local linia="'''Nagłówek'''.";
local wikibooks_przyklad_stronicowyparser_rozdzialy_czyzerowynapiswprowadzeniatekstu_kod_1=require("Module:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/Kod 1");
local tekst,strona,strona_szablonowa,rozdzial,czy_tak=wikibooks_przyklad_stronicowyparser_rozdzialy_czyzerowynapiswprowadzeniatekstu_kod_1["PodstawowyKodPrzykładu"](linia);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"tekst",tekst,},
{"strona",strona,},
{"strona_szablonowa",strona_szablonowa,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
dn3z20kly3iywwlvpsqdw94co6f5lg6
557952
557944
2026-09-29T07:54:53Z
Persino
2851
557952
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local linia="'''Nagłówek'''.";
local wikibooks_przyklad_stronicowyparser_rozdzialy_czyzerowynapiswprowadzeniatekstu_kod_1=require("Module:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/Kod 1");
local strona,strona_szablonowa,tekst,rozdzial,czy_tak=wikibooks_przyklad_stronicowyparser_rozdzialy_czyzerowynapiswprowadzeniatekstu_kod_1["PodstawowyKodPrzykładu"](linia);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"strona",strona,},
{"strona_szablonowa",strona_szablonowa,},
{"tekst",tekst,},
{"rozdzial",rozdzial,},
{"czy_tak",czy_tak,},
});
return wikikod;
end;
return p;
slr9yatpp722lmd7n1h55nvqz38xds6
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu/Kod 1
828
64363
557927
2026-09-29T06:59:47Z
Persino
2851
Utworzono nową stronę „require("strict"); local p={}; p["Przykład"]=function(frame) 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={}; local linia2=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); local przedrotek_listy…”
557927
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
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={};
local linia2=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_tak1=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia2,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_tak2=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia2,true,"","","Książka","","",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"linia2",linia2,},
{"czy_tak1",czy_tak1,},
{"czy_tak2",czy_tak2,},
});
return wikikod;
end;
return p;
c4fxg4pyetydtb55r7ccur7dmiac00v
557928
557927
2026-09-29T07:02:07Z
Persino
2851
557928
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
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={};
local linia2=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_tak1=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia2,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_tak2=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia2,true,"","","Książka","","",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"linia2",linia2,},
{"przedrotek_listy",przedrotek_listy,},
{"czy_tak1",czy_tak1,},
{"czy_tak2",czy_tak2,},
});
return wikikod;
end;
return p;
iwm5v4gxu6y4e544xa5lcnygmgvmr5s
557930
557928
2026-09-29T07:06:03Z
Persino
2851
557930
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
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={};
local linia2=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_tak1=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia2,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_tak2=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia2,true,"","","Książka","","","",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"linia2",linia2,},
{"przedrotek_listy",przedrotek_listy,},
{"czy_tak1",czy_tak1,},
{"czy_tak2",czy_tak2,},
});
return wikikod;
end;
return p;
il06at3jlaqqxircfmjbnkumcckbqjv
557946
557930
2026-09-29T07:45:21Z
Persino
2851
Persino przeniósł(-osła) stronę [[Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu/Kod 3]] do [[Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu/Kod 1]], bez pozostawienia przekierowania pod starym tytułem
557930
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
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={};
local linia2=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_tak1=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia2,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_tak2=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia2,true,"","","Książka","","","",tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"linia2",linia2,},
{"przedrotek_listy",przedrotek_listy,},
{"czy_tak1",czy_tak1,},
{"czy_tak2",czy_tak2,},
});
return wikikod;
end;
return p;
il06at3jlaqqxircfmjbnkumcckbqjv
557948
557946
2026-09-29T07:47:43Z
Persino
2851
557948
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
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={};
local linia2=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={};
local strona="Podręcznik";
local strona_szablonowa=szablonowe_modul["SzablonowaKompletnaNazwaStrony"](strona);
---- Tutaj funkcja zwróci wartość: true;
local czy_tak1=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia2,false,"","","Książka","",strona,strona_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
---- Tutaj funkcja zwróci wartość: false;
local czy_tak2=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia2,true,"","","Książka","",strona,strona_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"linia2",linia2,},
{"przedrotek_listy",przedrotek_listy,},
{"strona",strona,},
{"strona_szablonowa",strona_szablonowa,},
{"czy_tak1",czy_tak1,},
{"czy_tak2",czy_tak2,},
});
return wikikod;
end;
return p;
sc5tje6un0bkmmvbyq96mmzvycw61ko
557949
557948
2026-09-29T07:49:50Z
Persino
2851
557949
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local szablonowe_modul=require("Module:Szablonowe");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local linia="''[[Książka/Artykuł|Artykuł]]''";
local strona="Książka";
local strona_szablonowa=szablonowe_modul["SzablonowaKompletnaNazwaStrony"](strona);
local tablica_analizy_obiektow_strony_dany_modul={};
local linia2=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(linia,strona,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_tak1=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia2,false,"","","Książka","",strona,strona_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
---- Tutaj funkcja zwróci wartość: false;
local czy_tak2=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrotek_listy,linia2,true,"","","Książka","",strona,strona_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"linia",linia,},
{"linia2",linia2,},
{"przedrotek_listy",przedrotek_listy,},
{"strona",strona,},
{"strona_szablonowa",strona_szablonowa,},
{"czy_tak1",czy_tak1,},
{"czy_tak2",czy_tak2,},
});
return wikikod;
end;
return p;
fict7ntof3v40hw00ptmkc2yd7h7byh
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/HnNumerWprowadzeniaTekstu/Kod 1
828
64364
557931
2026-09-29T07:09:49Z
Persino
2851
Utworzono nową stronę „require("strict"); local p={}; p["Przykład"]=function(frame) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local nazwa="h5"; local atrybuty={}; local poziom=stronicowyparser_rozdzialy_modul.HnNumerWprowadzeniaTekstu(nazwa,atrybuty); local zrodlolua_modul=require("Module:ŹródłoLua"); local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{ {"nazwa",nazwa,}, {"atrybuty",atrybuty,}, {"poziom",poziom,}, }); re…”
557931
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local nazwa="h5";
local atrybuty={};
local poziom=stronicowyparser_rozdzialy_modul.HnNumerWprowadzeniaTekstu(nazwa,atrybuty);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"nazwa",nazwa,},
{"atrybuty",atrybuty,},
{"poziom",poziom,},
});
return wikikod;
end;
return p;
ej6poec6hrlv9yx1llb0ir26wbtovpc
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/HnNumerWprowadzeniaTekstu/Kod 2
828
64365
557932
2026-09-29T07:10:33Z
Persino
2851
Utworzono nową stronę „require("strict"); local p={}; p["Przykład"]=function(frame) 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); local zrodlolua_modul=require("Module:ŹródłoLua"); local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{ {"nazwa",nazwa,}, {"atrybuty",atrybuty,…”
557932
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
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);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"nazwa",nazwa,},
{"atrybuty",atrybuty,},
{"poziom",poziom,},
});
return wikikod;
end;
return p;
jio6qdamk5hge5ue8qjlz3oeynsn83q
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/NumeracjaOrazTekstWprowadzeniaTekstu/Kod 1
828
64366
557934
2026-09-29T07:13:27Z
Persino
2851
Utworzono nową stronę „require("strict"); local p={}; p["Przykład"]=function(frame) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local zawartosc="5.1.6. Rozdział"; local numeracja,rozdzial=stronicowyparser_rozdzialy_modul.NumeracjaOrazTekstWprowadzeniaTekstu(zawartosc); local zrodlolua_modul=require("Module:ŹródłoLua"); local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{ {"zawartosc",zawartosc,}, {"numeracja",numeracja,}, {"…”
557934
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local zawartosc="5.1.6. Rozdział";
local numeracja,rozdzial=stronicowyparser_rozdzialy_modul.NumeracjaOrazTekstWprowadzeniaTekstu(zawartosc);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"zawartosc",zawartosc,},
{"numeracja",numeracja,},
{"rozdzial",rozdzial,},
});
return wikikod;
end;
return p;
lxlvtaz3bohhqqbwbwacpbpovbk2dw2
557940
557934
2026-09-29T07:27:31Z
Persino
2851
Persino przeniósł(-osła) stronę [[Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/NumeracjaOrazTekstWprowadzeniaTekstu/Kod 2]] do [[Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/NumeracjaOrazTekstWprowadzeniaTekstu/Kod 1]], bez pozostawienia przekierowania pod starym tytułem
557934
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local zawartosc="5.1.6. Rozdział";
local numeracja,rozdzial=stronicowyparser_rozdzialy_modul.NumeracjaOrazTekstWprowadzeniaTekstu(zawartosc);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"zawartosc",zawartosc,},
{"numeracja",numeracja,},
{"rozdzial",rozdzial,},
});
return wikikod;
end;
return p;
lxlvtaz3bohhqqbwbwacpbpovbk2dw2
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/Kod 2/opis
828
64367
557935
2026-09-29T07:14:50Z
Persino
2851
Utworzono nową stronę „{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}”
557935
wikitext
text/x-wiki
{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}
i7c35wj7jmf6evuqteywkwemwpf4vz1
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/Kod 1/opis
828
64368
557936
2026-09-29T07:15:13Z
Persino
2851
Utworzono nową stronę „{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}”
557936
wikitext
text/x-wiki
{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}
i7c35wj7jmf6evuqteywkwemwpf4vz1
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/HnNumerWprowadzeniaTekstu/Kod 1/opis
828
64369
557937
2026-09-29T07:16:25Z
Persino
2851
Utworzono nową stronę „{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}”
557937
wikitext
text/x-wiki
{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}
i7c35wj7jmf6evuqteywkwemwpf4vz1
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/HnNumerWprowadzeniaTekstu/Kod 2/opis
828
64370
557938
2026-09-29T07:16:51Z
Persino
2851
Utworzono nową stronę „{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}”
557938
wikitext
text/x-wiki
{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}
i7c35wj7jmf6evuqteywkwemwpf4vz1
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/NumeracjaOrazTekstWprowadzeniaTekstu/Kod 1/opis
828
64371
557941
2026-09-29T07:28:39Z
Persino
2851
Utworzono nową stronę „{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}”
557941
wikitext
text/x-wiki
{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}
i7c35wj7jmf6evuqteywkwemwpf4vz1
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyZerowyNapisWprowadzeniaTekstu/Kod 3/opis
828
64372
557945
2026-09-29T07:43:30Z
Persino
2851
Utworzono nową stronę „{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}”
557945
wikitext
text/x-wiki
{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}
i7c35wj7jmf6evuqteywkwemwpf4vz1
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu/Kod 1/opis
828
64373
557947
2026-09-29T07:45:45Z
Persino
2851
Utworzono nową stronę „{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}”
557947
wikitext
text/x-wiki
{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}
i7c35wj7jmf6evuqteywkwemwpf4vz1
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstuHn/Kod 1
828
64374
557989
2026-09-29T11:16:04Z
Persino
2851
Utworzono nową stronę „require("strict"); local p={}; p["Przykład"]=function(frame) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local rozdzial="Tekst rozdziału"; local poziom_rozdzialu1=4; local tab_atrybuty={["id"]="identyfikator",["class"]="klasa1 klasa2",}; local napis_rozdzialu1=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstuHn(rozdzial,poziom_rozdzialu1,tab_atrybuty); local poziom_rozdzialu2=8; local napis_rozdzialu2=st…”
557989
Scribunto
text/plain
require("strict");
local p={};
p["Przykład"]=function(frame)
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local rozdzial="Tekst rozdziału";
local poziom_rozdzialu1=4;
local tab_atrybuty={["id"]="identyfikator",["class"]="klasa1 klasa2",};
local napis_rozdzialu1=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstuHn(rozdzial,poziom_rozdzialu1,tab_atrybuty);
local poziom_rozdzialu2=8;
local napis_rozdzialu2=stronicowyparser_rozdzialy_modul.NapisWprowadzeniaTekstuHn(rozdzial,poziom_rozdzialu2,tab_atrybuty);
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,{
{"rozdzial",rozdzial,},
{"poziom_rozdzialu1",poziom_rozdzialu1,},
{"poziom_rozdzialu2",poziom_rozdzialu2,},
{"tab_atrybuty",tab_atrybuty,},
{"napis_rozdzialu1",napis_rozdzialu1,},
{"napis_rozdzialu2",napis_rozdzialu2,},
});
return wikikod;
end;
return p;
qbjbwam8qkyvh7907cairv8orhkihdt
Moduł:Wikibooks/Przykład/StronicowyParser/Rozdziały/NapisWprowadzeniaTekstuHn/Kod 1/opis
828
64375
557991
2026-09-29T11:18:16Z
Persino
2851
Utworzono nową stronę „{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}”
557991
wikitext
text/x-wiki
{{PobierzŚródtekst|uchwyt=dokumentacja|nazwa artykułu=dokumentacja|nazwa książki=MediaWiki:Scribunto-doc-page-przykład|klucz={{Szablon nie opis}}|klucz2=tak|klucz3=Tom II|klucz4=}}
i7c35wj7jmf6evuqteywkwemwpf4vz1