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.." &nbsp;—&nbsp; ") 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.." &nbsp;—&nbsp; ") 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="&#123;&#123;"..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,"^!","&#33;"); value=mw.ustring.gsub(value,"\n!","\n&#33;"); value=html_modul.EncodeZnakProloguList(value); wywolanie=wywolanie.."&#124;"..value; end; end; local wywolanie=wywolanie.."&#125;&#125;"; 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.."&#0*39;&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;&#0*39;"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoEncodeWikiTekstu(kod,numer) local wzor=znak_127.."&#039;&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;&#039;"..znak_127; return wzor; end; function p.NormaWzoruZakodowanegoWikiTekstu(co,numer_szablonu) local wzor=znak_127.."'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoWikiTekstu(kod,numer) local wikikodnumer=znak_127.."'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'"..znak_127; return wikikodnumer; end; function p.NormaWzoruZakodowanegoHtmlTekstu(co,numer_szablonu) local wzor="%%7F'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'%%7F"; return wzor; end; function p.NormaKoduZakodowanegoHtmlTekstu(kod,numer) local wikikodnumer="%7F'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'%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.." &#91;"..licznik_linkz.."&#93;]"; 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 "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; 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.." &#91;"..licznik_linkz.."&#93;]"; 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 "&lt;"..koniec..nazwa..odstepy_przed..tekst..odstepy_po.."&gt;"; 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 "&lt;"..koniec..nazwa..odstepy_przed..tekst..odstepy_po.."&gt;"; 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 "&lt;"..koniec..nazwa..odstepy_przed..tekst..odstepy_po.."&gt;"; 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 "&lt;"..koniec..nazwa..odstepy_przed..tekst..odstepy_po.."&gt;"; 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&nbsp;&&nbsp;Sekulovic,&nbsp;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&nbsp;&&nbsp;Sekulovic,&nbsp;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&nbsp;&&nbsp;Sekulovic,&nbsp;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&nbsp;&&nbsp;Sekulovic,&nbsp;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&nbsp;&&nbsp;Sekulovic,&nbsp;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&nbsp;&&nbsp;Sekulovic,&nbsp;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 "&#91;"..((obiekt~="") and (obiekt.." ") or "")..kod.."&#93;"; 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 "&#91;"..((obiekt~="") and (obiekt.." ") or "")..kod.."&#93;"; 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: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </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&section=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|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. 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|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. }} 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|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. 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|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. }} 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|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). 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|&#8206;}}}} 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|&#8206;}}}}, 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|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} 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|&#35}}}}, 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|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdych na kod: {{Code|{{Nowiki|&amp;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|&#35;}}}} 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|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna z parametrów jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} z kodu {{Code|{{Nowiki|&num;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;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|&num;}}}}. 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|&num;}}}}. 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|&num;}}}}, funkcją: {{LinkŚródtytuł|p.EncodeTempHashKoduHtmlTekstu}} (jeżeli w adresie kody istnieją), wtedy coś powstaje w rodzaju dla kodu dziesiętnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, 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|&amp;&num;}}}}. 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