Wikibooks plwikibooks https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna MediaWiki 1.47.0-wmf.17 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 niepuste/opis 10 42314 553362 421812 2026-08-28T06:46:59Z Persino 2851 /* Użycie */ 553362 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon przyjmuje dwa parametry, jeśli pierwszy parametr jest niepusty, wtedy zwraca ten parametr z odpowiednim tekstem przed lub po, i ewentualnie otoczona znacznikami. == 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ż == * {{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, * {{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> cus634pttxgnlgw4r9omvidrqjokhck 553363 553362 2026-08-28T06:48:47Z Persino 2851 /* Użycie */ 553363 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon przyjmuje dwa parametry, jeśli pierwszy parametr jest niepusty, wtedy zwraca ten parametr z odpowiednim tekstem przedrostkiem lub przyrostkiem, i ewentualnie otoczona znacznikami. == 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ż == * {{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, * {{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> g0y7z86fq8j9cb2oee866buy6jh0bcp 553364 553363 2026-08-28T06:57:58Z Persino 2851 /* Użycie */ 553364 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). == 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ż == * {{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, * {{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> n7z48ayq8rb7nowwxsbm0jnoi15js82 553365 553364 2026-08-28T06:59:19Z Persino 2851 /* Parametry */ 553365 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). == 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ż == * {{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, * {{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> 0mb3dpq5j6e88y6sa8feyga56zopkpn 553366 553365 2026-08-28T07:13:48Z Persino 2851 /* Użycie */ 553366 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ż == * {{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, * {{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> sofaulvspybouj0rwlygjj3eeua0ugg Śpiewnik 0 54239 553342 552885 2026-08-27T18:49:00Z Ashaio 4702 +3 553342 wikitext text/x-wiki __NOTOC__ {{Status|-100%|Muzyka}} == Wprowadzenie == Śpiewnik zawiera wyłącznie utwory na wolnych licencjach oraz takie, do których majątkowe prawa autorskie wygasły (utwory z domeny publicznej). Preferowaną formą zapisu muzycznego jest tzw. ''lead sheet'', tzn. nutowy zapis melodii jednogłosowej oraz schematyczny zapis towarzyszących akordów. Mile widziane są aranżacje wielogłosowe oraz na głos i fortepian – koniecznie oparte na źródłach. W spisie treści piosenki podane są w kolejności alfabetycznej. W materiałach dodatkowych można umieścić indeksy chronologiczne, tematyczne itp. == Pieśni i piosenki == {{Kolumny|3| # {{sr|A lulu, a lulu}} # {{sr|A w Krakowie na ulicy}} # {{sr|Aaa, kotki dwa}} # {{sr|Ach mój Boże, cóż mam czynić}} # {{sr|Akademik ci ja}} # {{sr|Alpuhara}} # {{sr|Anioł pasterzom mówił}} # {{sr|Auld Lang Syne}} # {{sr|Bartoszu, Bartoszu}} # {{sr|Bogurodzica}} # {{sr|Boże, coś Polskę}} # {{sr|Boże wieczny, Boże żywy}} # {{sr|Bóg się rodzi}} # {{sr|Bracia, nuż do koła}} # {{sr|Był Matysek chłop przed laty}} # {{sr|Bywaj dziewczę zdrowe}} # {{sr|Choć burza huczy wkoło nas}} # {{sr|Choćbym ja jeździł we dnie i w nocy}} # {{sr|Cicha noc}} # {{sr|Czarna sukienka}} # {{sr|Czerwone jabłuszko}} # {{sr|Czerwony pas}} # {{sr|Cześć polskiej ziemi, cześć}} # {{sr|Cztery rzeczy w Polsce słyną}} # {{sr|Dajcież mi kielicha}} # {{sr|Dalibóg, że powiem mamie}} # {{sr|Deutschlandlied}} # {{sr|Do pracy, razem do pracy}} # {{sr|Duma ukrainna}} # {{sr|Dzisiaj w Betlejem}} # {{sr|Gaude mater}} # {{sr|Gaudeamus igitur}} # {{sr|Gdy się Chrystus rodzi}} # {{sr|Gdym z kozaki szedł na boje}} # {{sr|Gdzież to jedziesz Jasiu}} # {{sr|God Save the King}} # {{sr|Góralu, czy ci nie żal}} # {{sr|Greensleeves}} # {{sr|Haniu moja, pójdź do domu}} # {{sr|Hatikvah}} # {{sr|Hej, bracia opryszki}} # {{sr|Hej hej, hej hej, do kniej, do kniej}} # {{sr|Hej koledzy, dalej żywo}} # {{sr|Hej koledzy, po mozołach}} # {{sr|Hej koledzy, z wspólnej czary}} # {{sr|Hej, tam pod lasem}} # {{sr|Hej, z góry, z góry jadą Mazury}} # {{sr|Hej, żeglujże, żeglarzu}} # {{sr|Idzie żołnierz borem, lasem}} # {{sr|Idź głosie po rosie, daj dziewczynie wiadę}} # {{sr|Integer vitae}} # {{sr|Ja i butelka to dwaj przyjaciele}} # {{sr|Jak dobrze nam}} # {{sr|Jak to na wojence ładnie}} # {{sr|Jesienią}} # {{sr|Jeszcze jeden mazur dzisiaj}} # {{sr|Jezus malusieńki}} # {{sr|Kiedy będzie słońce i pogoda}} # {{sr|Kochajmy się}} # {{sr|Koło mego ogródeczka}} # {{sr|Kołysanka Brahmsa}} # {{sr|Kołyszże się, kołysz}} # {{sr|Komu dzwonią, temu dzwonią}} # {{sr|Kot kot pani matko}} # {{sr|Kiedy nam się pora zdarza}} # {{sr|Krakowianka i kat}} # {{sr|Kto się w opiekę}} # {{sr|Kukułeczka}} # {{sr|Kurdesz}} # {{sr|Laura i Filon}} # {{sr|Leci liście z drzewa}} # {{sr|Leć głosie po rosie, po niskiej leszczynie}} # {{sr|Leć głosie po rosie, prosto ku traktowi}} # {{sr|Lilie}} # {{sr|Lulajże, Jezuniu}} # {{sr|Lutni moja ulubiona}} # {{sr|Małgorzatka}} # {{sr|Marsylianka}} # {{sr|Marsz, marsz Polonia}} # {{sr|Marzenie o grajku}} # {{sr|Mazurek Dąbrowskiego}} # {{sr|Me lube dziewczę}} # {{sr|Mędrcy świata monarchowie}} # {{sr|Mizerna, cicha}} # {{sr|Na dolinie zawierucha}} # {{sr|Na Wawel, na Wawel}} # {{sr|Ne chody Hryciu na weczernyci}} # {{sr|Nie tak in illo tempore bywało|Nie tak ''in illo tempore'' bywało}} # {{sr|Nuże żywo postaw flasze}} # {{sr|O, gwiazdeczko, coś błyszczała}} # {{sr|O, gwiazdeczko, coś świeciła}} # {{sr|O Matko Polko}} # {{sr|O mój rozmarynie}} # {{sr|Obie kochał pan}} # {{sr|Oda do radości}} # {{sr|Ogródek}} # {{sr|Oj, chmielu, chmielu}} # {{sr|Oj ty horo kamennaja}} # {{sr|Ojcze z niebios Boże Panie}} # {{sr|Ospały i gnuśny, zgrzybiały ten świat}} # {{sr|Ozdobo twarzy, pokrętne wąsy}} # {{sr|Panicz i dziewczyna}} # {{sr|Pieśń poranna}} (Kiedy ranne wstają zorze...) # {{sr|Pieśń wieczorna}} (Wszystkie nasze dzienne sprawy...) # {{sr|Piękna nasza Polska cała}} # {{sr|Pije Kuba do Jakuba}} # {{sr|Płynie Wisła, płynie}} # {{sr|Po cóż ciągle w mieście siedzieć}} # {{sr|Po nocnej rosie płyń dźwięczny głosie}} # {{sr|Podolanka}} # {{sr|Pojedziemy na łów}} # {{sr|Polak nie sługa}} # {{sr|Polska młodzież niech nam żyje}} # {{sr|Polski przemysł niech nam żyje}} # {{sr|Potężny Boże}} # {{sr|Pożegnanie Childe Harolda}} # {{sr|Precz, precz od nas smutek wszelki}} # {{sr|Prząśniczka}} # {{sr|Przybieżeli do Betlejem}} # {{sr|Przybyli ułani pod okienko}} # {{sr|Przyjechał Jasieńko}} # {{sr|Rok się kochali}} # {{sr|Rota}} # {{sr|Rześko, żwawo, stuku puku ‎}} # {{sr|Sadźmy, przyjacielu, róże}} # {{sr|Serce nie sługa}} # {{sr|Serdeczna Matko}} # {{sr|Siedzi sobie zając pod miedzą}} # {{sr|Służył Jasio u pana}} # {{sr|Słynie Gopło i Kruszwica }} # {{sr|Spuśćcie nam na ziemskie niwy}} # {{sr|Staropolskie zaloty}} # {{sr|Szła dzieweczka}} # {{sr|Szynkareczko, szafareczko}} # {{sr|Śliczne gwoździki, piękne tulipany ‎}} # {{sr|Śnieżyca}} # {{sr|Śród opok i jarów}} # {{sr|Świeci miesiąc, świeci}} # {{sr|Święta miłości kochanej ojczyzny}} # {{sr|Świtezianka}} # {{sr|Tam na błoniu błyszczy kwiecie}} # {{sr|Ten mem zdaniem dobrze żyje}} # {{sr|To są czary}} # {{sr|Trzech Budrysów}} # {{sr|Ty pójdziesz górą}} # {{sr|Umarł Maciek, umarł}} # {{sr|Upływa szybko życie}} # {{sr|Uśnijże mi, uśnij}} # {{sr|Użyjmy dziś żywota}} # {{sr|W krwawem polu srebrne ptaszę}} # {{sr|Veni Creator}} # {{sr|W głos serdeczna dumka płynie }} # {{sr|W morzu przegląda się gwiazda srebrzysta}} # {{sr|W murowanej piwnicy}} # {{sr|W ogrodzie na wodzie}} # {{sr|W okolicznem mieście}} # {{sr|W polu}} # {{sr|W polu lipeńka}} # {{sr|W tył wyloty, w górę wąsy}} # {{sr|W żłobie leży}} # {{sr|Wesoło, bracia, wesoło}} # {{sr|Wesoło żeglujmy, wesoło}} # {{sr|Wesoły nam dziś dzień nastał}} # {{sr|Wezmę ja skrzypki}} # {{sr|Witaj gwiazdko złota}} # {{sr|Witaj majowa jutrzenko}} # {{sr|Wojenko, wojenko}} # {{sr|Wszystkich dziś ciekawość budzi}} # {{sr|Za Ebru falą}} # {{sr|Za Niemen het precz}} # {{sr|Zagrzmiał mazur, w górę wąsy}} # {{sr|Zajączek}} # {{sr|Zdrowaś bądź Maryja}} # {{sr|Zgoda Sejmu to sprawiła}} # {{sr|Zielona łączka, żółty na niej kwiat}} # {{sr|Zielony dzban}} # {{sr|Zła zima}} # {{sr|Znaszli ten kraj}} # {{sr|Żal, żal za jedyną}} # {{sr|Życzenie}} # {{sr|Дзюба}} # {{sr|Їхав козак за Дунай}} # {{sr|Ще не вмерла України і слава, і воля}} }} == Materiały dodatkowe == * {{sr|Bibliografia}} * {{sr|Indeks tematyczny}} 7we7k96rlfjyry1kfjuihynufzhp2r0 Śpiewnik/Indeks tematyczny 0 56092 553343 552886 2026-08-27T18:51:22Z Ashaio 4702 +3 553343 wikitext text/x-wiki <noinclude>__NOTOC__{{ProstaStronaStart}}</noinclude> Poniższe grupy nie są rozłączne (piosenka może należeć do więcej niż jednej kategorii). {{Tabela|atrybuty=cellspacing="10" width="100%"|liczba wierszy=10|liczba kolumn=2|pozycja=brak|klasa op=siatka-mobilna tabela-szerokość |bez pionu 1_1=tak|opcje 1_1=width="50%" |bez pionu 1_2=tak|opcje 1_2=width="50%" |komórka 1_1={{Pudełko komórkowe 1|tytuł= Pieśni patriotyczne |grafika= |tekst= * {{sr|Bogurodzica}} * {{sr|Boże, coś Polskę}} * {{sr|Czarna sukienka}} * {{sr|Cześć polskiej ziemi, cześć}} * {{sr|Cztery rzeczy w Polsce słyną}} * {{sr|Leci liście z drzewa}} * {{sr|Marsz, marsz Polonia}} * {{sr|Mazurek Dąbrowskiego}} * {{sr|Na Wawel, na Wawel}} * {{sr|O Matko Polko}} * {{sr|Rota}} * {{sr|Święta miłości kochanej ojczyzny}} * {{sr|Witaj majowa jutrzenko}} * {{sr|Zgoda Sejmu to sprawiła}} }} |komórka 1_2={{Pudełko komórkowe 3|tytuł= Piosenki wojskowe |grafika= |tekst=* {{sr|Bartoszu, Bartoszu}} * {{sr|Bywaj dziewczę zdrowe}} * {{sr|Duma ukrainna}} * {{sr|Gdzież to jedziesz Jasiu}} * {{sr|Hej, tam pod lasem}} * {{sr|Idzie żołnierz borem, lasem}} * {{sr|Jak to na wojence ładnie}} * {{sr|Jeszcze jeden mazur dzisiaj}} * {{sr|O mój rozmarynie}} * {{sr|Przybyli ułani pod okienko}} * {{sr|Tam na błoniu błyszczy kwiecie}} * {{sr|W krwawem polu srebrne ptaszę}} * {{sr|Wojenko, wojenko}} * {{sr|Za Niemen het precz}} }} |komórka 2_1={{Pudełko komórkowe 2 |tytuł= Pieśni nabożne |grafika= |tekst= {{Wikiźródła|Śpiewnik kościelny}} * {{sr|Boże wieczny, Boże żywy}} * {{sr|Gaude mater}} * {{sr|Kto się w opiekę}} * {{sr|Ojcze z niebios Boże Panie}} * {{sr|Pieśń poranna}} * {{sr|Pieśń wieczorna}} * {{sr|Potężny Boże}} * {{sr|Serdeczna Matko}} * {{sr|Spuśćcie nam na ziemskie niwy}} * {{sr|Veni Creator}} * {{sr|Wesoły nam dziś dzień nastał}} * {{sr|Zdrowaś bądź Maryja}} }} |komórka 2_2={{Pudełko komórkowe 4|tytuł= Kolędy |grafika= |tekst={{Wikiźródła|Wikitomik:Kancjonał bożonarodzeniowy... przez Wikiskrybów zebrany|Kancjonał bożonarodzeniowy}} {{Commons|Polish_Christmas_carols|Polish Christmas carols}} * {{sr|Anioł pasterzom mówił}} * {{sr|Bóg się rodzi}} * {{sr|Cicha noc}} * {{sr|Dzisiaj w Betlejem}} * {{sr|Gdy się Chrystus rodzi}} * {{sr|Jezus malusieńki}} * {{sr|Lulajże, Jezuniu}} * {{sr|Mędrcy świata monarchowie}} * {{sr|Mizerna, cicha}} * {{sr|O, gwiazdeczko, coś świeciła}} * {{sr|Przybieżeli do Betlejem}} * {{sr|W żłobie leży}} * {{sr|Witaj gwiazdko złota}} }} |komórka 3_1={{Pudełko komórkowe 1|tytuł= Piosenki i melodie ludowe |grafika= |tekst=* {{sr|Choćbym ja jeździł we dnie i w nocy}} * {{sr|Czerwone jabłuszko}} * {{sr|Hej, z góry, z góry jadą Mazury}} * {{sr|Idź głosie po rosie, daj dziewczynie wiadę}} * {{sr|Kiedy będzie słońce i pogoda}} * {{sr|Koło mego ogródeczka}} * {{sr|Leć głosie po rosie, po niskiej leszczynie}} * {{sr|Leć głosie po rosie, prosto ku traktowi }} * {{sr|Oj, chmielu, chmielu}} * {{sr|Oj ty horo kamennaja}} * {{sr|Piękna nasza Polska cała}} * {{sr|Płynie Wisła, płynie}} * {{sr|Szła dzieweczka}} * {{sr|Świeci miesiąc, świeci}} * {{sr|Umarł Maciek, umarł}} * {{sr|W murowanej piwnicy}} * {{sr|W polu lipeńka}} * {{sr|Zakochali się}} * {{sr|Zielona łączka, żółty na niej kwiat}} }} |komórka 3_2={{Pudełko komórkowe 3|tytuł= Piosenki dla dzieci |grafika= |tekst= {{Wikiźródła|Śpiewnik dla dzieci}} * {{sr|Jesienią}} * {{sr|Kukułeczka}} * {{sr|Ogródek}} * {{sr|Sokół}} * {{sr|Śnieżyca}} * {{sr|Taniec}} * {{sr|W polu}} * {{sr|Zajączek}} * {{sr|Zła zima}} '''Kołysanki:''' * {{sr|A lulu, a lulu}} * {{sr|Aaa, kotki dwa}} * {{sr|Kołysanka Brahmsa }} * {{sr|Kołyszże się, kołysz}} * {{sr|Uśnijże mi, uśnij}} }} |komórka 4_1={{Pudełko komórkowe 2 |tytuł= Piosenki o miłości |grafika= |tekst=* {{sr|Ach mój Boże, cóż mam czynić}} * {{sr|Dalibóg, że powiem mamie}} * {{sr|Kiedy będzie słońce i pogoda}} * {{sr|Kot kot pani matko}} * {{sr|Laura i Filon}} * {{sr|Marzenie o grajku}} * {{sr|Me lube dziewczę}} * {{sr|Panicz i dziewczyna}} * {{sr|Rok się kochali}} * {{sr|Serce nie sługa}} * {{sr|Śliczne gwoździki, piękne tulipany}} * {{sr|Staropolskie zaloty}} * {{sr|To są czary}} * {{sr|Ty pójdziesz górą}} * {{sr|Z wysokich Parnasów}} * {{sr|Za Niemen het precz}} * {{sr|Zakochali się}} * {{sr|Zielona łączka, żółty na niej kwiat}} * {{sr|Życzenie}} }} |komórka 4_2={{Pudełko komórkowe 4 |tytuł= Piosenki „młodzieżowe” |grafika= |tekst=* {{sr|Akademik ci ja}} * {{sr|Gaudeamus igitur}} * {{sr|Hej koledzy, dalej żywo}} * {{sr|Hej koledzy, po mozołach}} * {{sr|Hej koledzy, z wspólnej czary}} * {{sr|Ospały i gnuśny, zgrzybiały ten świat}} * {{sr|Po cóż ciągle w mieście siedzieć}} * {{sr|Po nocnej rosie płyń dźwięczny głosie}} * {{sr|Polska młodzież niech nam żyje}} * {{sr|Precz, precz od nas smutek wszelki}} * {{sr|Sadźmy, przyjacielu, róże}} * {{sr|Szła dzieweczka}} * {{sr|Upływa szybko życie}} * {{sr|Użyjmy dziś żywota}} * {{sr|Żal, żal za jedyną}} }} |komórka 5_1={{Pudełko komórkowe 1|tytuł= Piosenki biesiadne |grafika= |tekst= * {{sr|Bracia, nuż do koła}} * {{sr|Dajcież mi kielicha}} * {{sr|Góralu, czy ci nie żal}} * {{sr|Ja i butelka to dwaj przyjaciele}} * {{sr|Kiedy nam się pora zdarza}} * {{sr|Kochajmy się}} * {{sr|Komu dzwonią, temu dzwonią}} * {{sr|Kurdesz}} * {{sr|Małgorzatka}} * {{sr|Nuże żywo postaw flasze}} * {{sr|Pije Kuba do Jakuba}} * {{sr|Precz, precz od nas smutek wszelki}} * {{sr|Szlachetne zdrowie}} * {{sr|Szła dzieweczka}} * {{sr|Szynkareczko, szafareczko}} * {{sr|Ten mem zdaniem dobrze żyje}} * {{sr|Wdzięczna miłości kochanej szklanice }} * {{sr|Wesoło, bracia, wesoło}} }} |komórka 5_2={{Pudełko komórkowe 3|tytuł= Pieśni zadumy i tęsknoty. Pożegnania |grafika= |tekst= * {{sr|Znaszli ten kraj}} '''Tęsknota za ukochaną/ukochanym:''' * {{sr|Gdym z kozaki szedł na boje}} * {{sr|Za Niemen het precz}} * {{sr|Żal, żal za jedyną}} '''Tęsknota za przeszłością:''' * {{sr|Cieszmy się bracia nadzieją}} * {{sr|Na dolinie zawierucha}} * {{sr|Nie tak in illo tempore bywało|Nie tak ''in illo tempore'' bywało}} * {{sr|O, gwiazdeczko, coś błyszczała}} * {{sr|Ozdobo twarzy, pokrętne wąsy}} * {{sr|W tył wyloty, w górę wąsy}} * {{sr|Zagrzmiał mazur, w górę wąsy}} * {{sr|Zgoda Sejmu to sprawiła}} '''Tęsknota za krajem rodzinnym:''' * {{sr|Góralu, czy ci nie żal}} * {{sr|Pożegnanie Childe Harolda}} * {{sr|Sokół}} * {{sr|W głos serdeczna dumka płynie}} }} |komórka 6_1={{Pudełko komórkowe 2 |tytuł= Dumki i ballady |grafika= |tekst='''Ballady literackie:''' * {{sr|Alpuhara}} * {{sr|Lilie}} * {{sr|Obie kochał pan}} * {{sr|Świtezianka}} * {{sr|Trzech Budrysów}} '''Ballady ludowe:''' * {{sr|A w Krakowie na ulicy}} * {{sr|Haniu moja, pójdź do domu}} * {{sr|Krakowianka i kat}} * {{sr|Podolanka}} * {{sr|Przyjechał Jasieńko}} * {{sr|Służył Jasio u pana}} * {{sr|Stała nam się nowina}} → {{sr|Lilie}} * {{sr|W okolicznem mieście}} * {{sr|Zielony dzban}} }} |komórka 6_2={{Pudełko komórkowe 4|tytuł= Piosenki wędrówkowe |grafika= |tekst= * {{sr|Ach mój Boże, cóż mam czynić}} * {{sr|Zielona łączka, żółty na niej kwiat}} '''Piosenki łowieckie:''' * {{sr|Hej hej, hej hej, do kniej, do kniej}} * {{sr|Pojedziemy na łów}} * {{sr|Siedzi sobie zając pod miedzą}} * {{sr|Szła dzieweczka}} * {{sr|Śród opok i jarów}} * {{sr|Zajączek}} '''Piosenki żeglarskie:''' * {{sr|Choć burza huczy wkoło nas}} * {{sr|Hej, żeglujże, żeglarzu}} * {{sr|W morzu przegląda się gwiazda srebrzysta}} * {{sr|Wesoło żeglujmy, wesoło}} '''Piosenki o górach:''' * {{sr|Czerwony pas}} * {{sr|Góralu, czy ci nie żal}} * {{sr|Jak dobrze nam}} '''Piosenki zbójeckie''' * {{sr|Hej, bracia opryszki}} * {{sr|Me lube dziewczę}} '''Piosenki o Cyganach''' * {{sr|Hej, tam pod lasem}} * {{sr|Za Ebru falą}} }} |komórka 7_1={{Pudełko komórkowe 1|tytuł= Hymny i hejnały |grafika= |tekst= * {{sr|Mazurek Dąbrowskiego}} (hymn Polski) * {{sr|Deutschlandlied}} (hymn Niemiec) * {{sr|God Save the King}} (hymn Wielkiej Brytanii) * {{sr|Hatikvah}} (hymn Izraela) * {{sr|Marsylianka}} (hymn Francji) * {{sr|Oda do radości}} (hymn Unii Europejskiej) * {{sr|Ще не вмерла України і слава, і воля}} (hymn Ukrainy) }} |komórka 7_2={{Pudełko komórkowe 3|tytuł= Pieśni (o) pracy |grafika= |tekst=* {{sr|Ach mój Boże, cóż mam czynić}} (piosenka czeladnika) * {{sr|Do pracy, razem do pracy}} * {{sr|Nad mularską profesyą}} (pieśń murarza) * {{sr|Polski przemysł niech nam żyje}} * {{sr|Prząśniczka}} * {{sr|Rześko, żwawo, stuku puku}} (pieśń kowala) * {{sr|Słynie Gopło i Kruszwica}} (piosnka kołodzieja) * {{sr|W ogrodzie na wodzie}} (przegląd zawodów) * {{sr|Wszystkich dziś ciekawość budzi}} (piosnka furmana) }} |komórka 8_1={{Pudełko komórkowe 2 |tytuł= O muzyce |grafika= |tekst=* {{sr|Lutni moja ulubiona}} * {{sr|Marzenie o grajku }} * {{sr|Taniec}} * {{sr|Wezmę ja skrzypki}} }} |komórka 8_2={{Pudełko komórkowe 4|tytuł= Pieśni i piosenki o śmierci |grafika= |tekst=* {{sr|Był Matysek chłop przed laty}} * {{sr|Komu dzwonią, temu dzwonią}} * {{sr|Umarł Maciek, umarł}} }} |komórka 9_1={{Pudełko komórkowe 1|tytuł= Pieśni i piosenki po angielsku |grafika= |tekst={{Projekt siostrzany|projekt=wikibooks|tekst=Zobacz w [[:en:Main_Page|anglojęzycznych Wikibooks]] podręcznik '''[[:en:Songbook/Content#123|Songbook]]'''}} * {{sr|Auld Lang Syne}} * {{sr|God Save the King}} (hymn Wielkiej Brytanii) * {{sr|Greensleeves}} }} |komórka 9_2={{Pudełko komórkowe 3|tytuł= Śpiewy w języku łacińskim |grafika= |tekst=* {{sr|Gaude mater}} * {{sr|Gaudeamus igitur}} * {{sr|Integer vitae}} * {{sr|Veni Creator}} }} |komórka 10_1={{Pudełko komórkowe 2 |tytuł= Pieśni i piosenki po niemiecku |grafika= |tekst={{Projekt siostrzany|projekt=wikibooks|tekst=Zobacz w [[:de:Hauptseite|niemieckojęzycznych Wikibooks]] podręcznik '''[[:de:Liederbuch/_Inhalt#Lieder|Liederbuch]]'''}} * {{sr|Deutschlandlied}} (hymn Niemiec) * {{sr|Kołysanka Brahmsa }} * {{sr|Oda do radości}} }} |komórka 10_2={{Pudełko komórkowe 4|tytuł= Pieśni i piosenki rusińskie i ukraińskie |grafika= |tekst=* {{sr|Ne chody Hryciu na weczernyci}} * {{sr|Oj ty horo kamennaja}} * {{sr|Дзюба}} * {{sr|Їхав козак за Дунай}} * {{sr|Ще не вмерла України і слава, і воля}} }} }} <noinclude>{{ProstaStronaKoniec}}</noinclude> j3x57rij0vag8v0szcl3owwq6eb182b 553347 553343 2026-08-27T19:16:42Z Persino 2851 553347 wikitext text/x-wiki <noinclude>__NOTOC__{{ProstaStronaStart}}</noinclude> Poniższe grupy nie są rozłączne (piosenka może należeć do więcej niż jednej kategorii). {{Tabela|atrybuty=cellspacing="10" width="100%"|liczba wierszy=10|liczba kolumn=2|pozycja=brak|klasa op=siatka-mobilna tabela-szerokość tabela-flex |bez pionu 1_1=tak|opcje 1_1=width="50%" |bez pionu 1_2=tak|opcje 1_2=width="50%" |komórka 1_1={{Pudełko komórkowe 1|tytuł= Pieśni patriotyczne |grafika= |tekst= * {{sr|Bogurodzica}} * {{sr|Boże, coś Polskę}} * {{sr|Czarna sukienka}} * {{sr|Cześć polskiej ziemi, cześć}} * {{sr|Cztery rzeczy w Polsce słyną}} * {{sr|Leci liście z drzewa}} * {{sr|Marsz, marsz Polonia}} * {{sr|Mazurek Dąbrowskiego}} * {{sr|Na Wawel, na Wawel}} * {{sr|O Matko Polko}} * {{sr|Rota}} * {{sr|Święta miłości kochanej ojczyzny}} * {{sr|Witaj majowa jutrzenko}} * {{sr|Zgoda Sejmu to sprawiła}} }} |komórka 1_2={{Pudełko komórkowe 3|tytuł= Piosenki wojskowe |grafika= |tekst=* {{sr|Bartoszu, Bartoszu}} * {{sr|Bywaj dziewczę zdrowe}} * {{sr|Duma ukrainna}} * {{sr|Gdzież to jedziesz Jasiu}} * {{sr|Hej, tam pod lasem}} * {{sr|Idzie żołnierz borem, lasem}} * {{sr|Jak to na wojence ładnie}} * {{sr|Jeszcze jeden mazur dzisiaj}} * {{sr|O mój rozmarynie}} * {{sr|Przybyli ułani pod okienko}} * {{sr|Tam na błoniu błyszczy kwiecie}} * {{sr|W krwawem polu srebrne ptaszę}} * {{sr|Wojenko, wojenko}} * {{sr|Za Niemen het precz}} }} |komórka 2_1={{Pudełko komórkowe 2 |tytuł= Pieśni nabożne |grafika= |tekst= {{Wikiźródła|Śpiewnik kościelny}} * {{sr|Boże wieczny, Boże żywy}} * {{sr|Gaude mater}} * {{sr|Kto się w opiekę}} * {{sr|Ojcze z niebios Boże Panie}} * {{sr|Pieśń poranna}} * {{sr|Pieśń wieczorna}} * {{sr|Potężny Boże}} * {{sr|Serdeczna Matko}} * {{sr|Spuśćcie nam na ziemskie niwy}} * {{sr|Veni Creator}} * {{sr|Wesoły nam dziś dzień nastał}} * {{sr|Zdrowaś bądź Maryja}} }} |komórka 2_2={{Pudełko komórkowe 4|tytuł= Kolędy |grafika= |tekst={{Wikiźródła|Wikitomik:Kancjonał bożonarodzeniowy... przez Wikiskrybów zebrany|Kancjonał bożonarodzeniowy}} {{Commons|Polish_Christmas_carols|Polish Christmas carols}} * {{sr|Anioł pasterzom mówił}} * {{sr|Bóg się rodzi}} * {{sr|Cicha noc}} * {{sr|Dzisiaj w Betlejem}} * {{sr|Gdy się Chrystus rodzi}} * {{sr|Jezus malusieńki}} * {{sr|Lulajże, Jezuniu}} * {{sr|Mędrcy świata monarchowie}} * {{sr|Mizerna, cicha}} * {{sr|O, gwiazdeczko, coś świeciła}} * {{sr|Przybieżeli do Betlejem}} * {{sr|W żłobie leży}} * {{sr|Witaj gwiazdko złota}} }} |komórka 3_1={{Pudełko komórkowe 1|tytuł= Piosenki i melodie ludowe |grafika= |tekst=* {{sr|Choćbym ja jeździł we dnie i w nocy}} * {{sr|Czerwone jabłuszko}} * {{sr|Hej, z góry, z góry jadą Mazury}} * {{sr|Idź głosie po rosie, daj dziewczynie wiadę}} * {{sr|Kiedy będzie słońce i pogoda}} * {{sr|Koło mego ogródeczka}} * {{sr|Leć głosie po rosie, po niskiej leszczynie}} * {{sr|Leć głosie po rosie, prosto ku traktowi }} * {{sr|Oj, chmielu, chmielu}} * {{sr|Oj ty horo kamennaja}} * {{sr|Piękna nasza Polska cała}} * {{sr|Płynie Wisła, płynie}} * {{sr|Szła dzieweczka}} * {{sr|Świeci miesiąc, świeci}} * {{sr|Umarł Maciek, umarł}} * {{sr|W murowanej piwnicy}} * {{sr|W polu lipeńka}} * {{sr|Zakochali się}} * {{sr|Zielona łączka, żółty na niej kwiat}} }} |komórka 3_2={{Pudełko komórkowe 3|tytuł= Piosenki dla dzieci |grafika= |tekst= {{Wikiźródła|Śpiewnik dla dzieci}} * {{sr|Jesienią}} * {{sr|Kukułeczka}} * {{sr|Ogródek}} * {{sr|Sokół}} * {{sr|Śnieżyca}} * {{sr|Taniec}} * {{sr|W polu}} * {{sr|Zajączek}} * {{sr|Zła zima}} '''Kołysanki:''' * {{sr|A lulu, a lulu}} * {{sr|Aaa, kotki dwa}} * {{sr|Kołysanka Brahmsa }} * {{sr|Kołyszże się, kołysz}} * {{sr|Uśnijże mi, uśnij}} }} |komórka 4_1={{Pudełko komórkowe 2 |tytuł= Piosenki o miłości |grafika= |tekst=* {{sr|Ach mój Boże, cóż mam czynić}} * {{sr|Dalibóg, że powiem mamie}} * {{sr|Kiedy będzie słońce i pogoda}} * {{sr|Kot kot pani matko}} * {{sr|Laura i Filon}} * {{sr|Marzenie o grajku}} * {{sr|Me lube dziewczę}} * {{sr|Panicz i dziewczyna}} * {{sr|Rok się kochali}} * {{sr|Serce nie sługa}} * {{sr|Śliczne gwoździki, piękne tulipany}} * {{sr|Staropolskie zaloty}} * {{sr|To są czary}} * {{sr|Ty pójdziesz górą}} * {{sr|Z wysokich Parnasów}} * {{sr|Za Niemen het precz}} * {{sr|Zakochali się}} * {{sr|Zielona łączka, żółty na niej kwiat}} * {{sr|Życzenie}} }} |komórka 4_2={{Pudełko komórkowe 4 |tytuł= Piosenki „młodzieżowe” |grafika= |tekst=* {{sr|Akademik ci ja}} * {{sr|Gaudeamus igitur}} * {{sr|Hej koledzy, dalej żywo}} * {{sr|Hej koledzy, po mozołach}} * {{sr|Hej koledzy, z wspólnej czary}} * {{sr|Ospały i gnuśny, zgrzybiały ten świat}} * {{sr|Po cóż ciągle w mieście siedzieć}} * {{sr|Po nocnej rosie płyń dźwięczny głosie}} * {{sr|Polska młodzież niech nam żyje}} * {{sr|Precz, precz od nas smutek wszelki}} * {{sr|Sadźmy, przyjacielu, róże}} * {{sr|Szła dzieweczka}} * {{sr|Upływa szybko życie}} * {{sr|Użyjmy dziś żywota}} * {{sr|Żal, żal za jedyną}} }} |komórka 5_1={{Pudełko komórkowe 1|tytuł= Piosenki biesiadne |grafika= |tekst= * {{sr|Bracia, nuż do koła}} * {{sr|Dajcież mi kielicha}} * {{sr|Góralu, czy ci nie żal}} * {{sr|Ja i butelka to dwaj przyjaciele}} * {{sr|Kiedy nam się pora zdarza}} * {{sr|Kochajmy się}} * {{sr|Komu dzwonią, temu dzwonią}} * {{sr|Kurdesz}} * {{sr|Małgorzatka}} * {{sr|Nuże żywo postaw flasze}} * {{sr|Pije Kuba do Jakuba}} * {{sr|Precz, precz od nas smutek wszelki}} * {{sr|Szlachetne zdrowie}} * {{sr|Szła dzieweczka}} * {{sr|Szynkareczko, szafareczko}} * {{sr|Ten mem zdaniem dobrze żyje}} * {{sr|Wdzięczna miłości kochanej szklanice }} * {{sr|Wesoło, bracia, wesoło}} }} |komórka 5_2={{Pudełko komórkowe 3|tytuł= Pieśni zadumy i tęsknoty. Pożegnania |grafika= |tekst= * {{sr|Znaszli ten kraj}} '''Tęsknota za ukochaną/ukochanym:''' * {{sr|Gdym z kozaki szedł na boje}} * {{sr|Za Niemen het precz}} * {{sr|Żal, żal za jedyną}} '''Tęsknota za przeszłością:''' * {{sr|Cieszmy się bracia nadzieją}} * {{sr|Na dolinie zawierucha}} * {{sr|Nie tak in illo tempore bywało|Nie tak ''in illo tempore'' bywało}} * {{sr|O, gwiazdeczko, coś błyszczała}} * {{sr|Ozdobo twarzy, pokrętne wąsy}} * {{sr|W tył wyloty, w górę wąsy}} * {{sr|Zagrzmiał mazur, w górę wąsy}} * {{sr|Zgoda Sejmu to sprawiła}} '''Tęsknota za krajem rodzinnym:''' * {{sr|Góralu, czy ci nie żal}} * {{sr|Pożegnanie Childe Harolda}} * {{sr|Sokół}} * {{sr|W głos serdeczna dumka płynie}} }} |komórka 6_1={{Pudełko komórkowe 2 |tytuł= Dumki i ballady |grafika= |tekst='''Ballady literackie:''' * {{sr|Alpuhara}} * {{sr|Lilie}} * {{sr|Obie kochał pan}} * {{sr|Świtezianka}} * {{sr|Trzech Budrysów}} '''Ballady ludowe:''' * {{sr|A w Krakowie na ulicy}} * {{sr|Haniu moja, pójdź do domu}} * {{sr|Krakowianka i kat}} * {{sr|Podolanka}} * {{sr|Przyjechał Jasieńko}} * {{sr|Służył Jasio u pana}} * {{sr|Stała nam się nowina}} → {{sr|Lilie}} * {{sr|W okolicznem mieście}} * {{sr|Zielony dzban}} }} |komórka 6_2={{Pudełko komórkowe 4|tytuł= Piosenki wędrówkowe |grafika= |tekst= * {{sr|Ach mój Boże, cóż mam czynić}} * {{sr|Zielona łączka, żółty na niej kwiat}} '''Piosenki łowieckie:''' * {{sr|Hej hej, hej hej, do kniej, do kniej}} * {{sr|Pojedziemy na łów}} * {{sr|Siedzi sobie zając pod miedzą}} * {{sr|Szła dzieweczka}} * {{sr|Śród opok i jarów}} * {{sr|Zajączek}} '''Piosenki żeglarskie:''' * {{sr|Choć burza huczy wkoło nas}} * {{sr|Hej, żeglujże, żeglarzu}} * {{sr|W morzu przegląda się gwiazda srebrzysta}} * {{sr|Wesoło żeglujmy, wesoło}} '''Piosenki o górach:''' * {{sr|Czerwony pas}} * {{sr|Góralu, czy ci nie żal}} * {{sr|Jak dobrze nam}} '''Piosenki zbójeckie''' * {{sr|Hej, bracia opryszki}} * {{sr|Me lube dziewczę}} '''Piosenki o Cyganach''' * {{sr|Hej, tam pod lasem}} * {{sr|Za Ebru falą}} }} |komórka 7_1={{Pudełko komórkowe 1|tytuł= Hymny i hejnały |grafika= |tekst= * {{sr|Mazurek Dąbrowskiego}} (hymn Polski) * {{sr|Deutschlandlied}} (hymn Niemiec) * {{sr|God Save the King}} (hymn Wielkiej Brytanii) * {{sr|Hatikvah}} (hymn Izraela) * {{sr|Marsylianka}} (hymn Francji) * {{sr|Oda do radości}} (hymn Unii Europejskiej) * {{sr|Ще не вмерла України і слава, і воля}} (hymn Ukrainy) }} |komórka 7_2={{Pudełko komórkowe 3|tytuł= Pieśni (o) pracy |grafika= |tekst=* {{sr|Ach mój Boże, cóż mam czynić}} (piosenka czeladnika) * {{sr|Do pracy, razem do pracy}} * {{sr|Nad mularską profesyą}} (pieśń murarza) * {{sr|Polski przemysł niech nam żyje}} * {{sr|Prząśniczka}} * {{sr|Rześko, żwawo, stuku puku}} (pieśń kowala) * {{sr|Słynie Gopło i Kruszwica}} (piosnka kołodzieja) * {{sr|W ogrodzie na wodzie}} (przegląd zawodów) * {{sr|Wszystkich dziś ciekawość budzi}} (piosnka furmana) }} |komórka 8_1={{Pudełko komórkowe 2 |tytuł= O muzyce |grafika= |tekst=* {{sr|Lutni moja ulubiona}} * {{sr|Marzenie o grajku }} * {{sr|Taniec}} * {{sr|Wezmę ja skrzypki}} }} |komórka 8_2={{Pudełko komórkowe 4|tytuł= Pieśni i piosenki o śmierci |grafika= |tekst=* {{sr|Był Matysek chłop przed laty}} * {{sr|Komu dzwonią, temu dzwonią}} * {{sr|Umarł Maciek, umarł}} }} |komórka 9_1={{Pudełko komórkowe 1|tytuł= Pieśni i piosenki po angielsku |grafika= |tekst={{Projekt siostrzany|projekt=wikibooks|tekst=Zobacz w [[:en:Main_Page|anglojęzycznych Wikibooks]] podręcznik '''[[:en:Songbook/Content#123|Songbook]]'''}} * {{sr|Auld Lang Syne}} * {{sr|God Save the King}} (hymn Wielkiej Brytanii) * {{sr|Greensleeves}} }} |komórka 9_2={{Pudełko komórkowe 3|tytuł= Śpiewy w języku łacińskim |grafika= |tekst=* {{sr|Gaude mater}} * {{sr|Gaudeamus igitur}} * {{sr|Integer vitae}} * {{sr|Veni Creator}} }} |komórka 10_1={{Pudełko komórkowe 2 |tytuł= Pieśni i piosenki po niemiecku |grafika= |tekst={{Projekt siostrzany|projekt=wikibooks|tekst=Zobacz w [[:de:Hauptseite|niemieckojęzycznych Wikibooks]] podręcznik '''[[:de:Liederbuch/_Inhalt#Lieder|Liederbuch]]'''}} * {{sr|Deutschlandlied}} (hymn Niemiec) * {{sr|Kołysanka Brahmsa }} * {{sr|Oda do radości}} }} |komórka 10_2={{Pudełko komórkowe 4|tytuł= Pieśni i piosenki rusińskie i ukraińskie |grafika= |tekst=* {{sr|Ne chody Hryciu na weczernyci}} * {{sr|Oj ty horo kamennaja}} * {{sr|Дзюба}} * {{sr|Їхав козак за Дунай}} * {{sr|Ще не вмерла України і слава, і воля}} }} }} <noinclude>{{ProstaStronaKoniec}}</noinclude> 13nfoeo6z97uqnlluoh053kdrunlzu5 Moduł:Techniczne 828 56417 553368 551370 2026-08-28T09:55:13Z Persino 2851 553368 Scribunto text/plain local p={}; p["Pierwszy niepusty"] = function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local i=1; local liczba_elementow_w_tablicy_args=parametry_modul["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"](args,"test"); local licznik=1; while true do local test=args["test"..i]; local _i=args[i]; local zmienna=test or _i; local czy_tak=parametry_modul.CzyTak(zmienna); if(czy_tak)then return (_i)and _i or "{{{"..i.."}}}"; end; if(licznik>=liczba_elementow_w_tablicy_args)then return;end; if(zmienna)then licznik=licznik+1;end; i=i+1; end; end; function p.NowikiParametr(frame) local parametr=frame.args[1]; local techniczne_dane_modul=mw.loadData("Module:Techniczne/dane"); parametr=mw.ustring.gsub(parametr,"(.)",function(s) return techniczne_dane_modul.tablica_szablonowa[s] or techniczne_dane_modul.tablica_linki[s] or techniczne_dane_modul.tablica_tagowa[s]; end); return parametr; end; function p.EncodeParametr(frame) local parametr=frame.args[1]; local szablonowe_dane_modul=require("Module:Szablonowe/dane"); parametr=mw.ustring.gsub(parametr,"(\")([^\"]+)(\")",function(a,str,b) return a..mw.text.encode(str)..b; end) parametr=mw.ustring.gsub(parametr,"<(/?)([^<>]+)>",function(znak,str) local znacznik=mw.ustring.match(str,"^(%a+)$") or mw.ustring.match(str,"^(%a+)%s+"); if(znacznik)then znacznik=mw.getContentLanguage():lc(znacznik); local czy_znacznik=szablonowe_dane_modul.tablica_html_mechanizmu_mediawiki[znacznik]; if(not czy_znacznik)then return "&amp;lt;"..znak..mw.text.encode(str).."&amp;gt;"; end; end; end); parametr=mw.text.decode(parametr); parametr=mw.text.encode(parametr); return parametr; end; p["PełnaNazwaOpisuModułu"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local pelna_nazwa_strony=PobierzParametr(1) or PobierzParametr("nazwa"); local komunikat = mw.message.new('Scribunto-doc-page-name', '$1'); local zawartosc_komunikatu; if(komunikat:exists())then zawartosc_komunikatu=komunikat:plain(); zawartosc_komunikatu=mw.getCurrentFrame():preprocess(zawartosc_komunikatu); else zawartosc_komunikatu="Module:$1/opis"; end; local nazwy_modul=require("Module:Nazwy"); local pelna_nazwa_strony_wedlug_strony_komunikatu=nazwy_modul["PEŁNANAZWASTRONY"](zawartosc_komunikatu); local pelna_nazwa_strony_podanej_lub_aktualnej=pelna_nazwa_strony and nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony) or nazwy_modul["PEŁNANAZWASTRONY"](); local wzor_pelnej_nazwy_strony=mw.ustring.gsub(pelna_nazwa_strony_wedlug_strony_komunikatu,"%$1",".-"); if(not mw.ustring.match(pelna_nazwa_strony_podanej_lub_aktualnej,"^"..wzor_pelnej_nazwy_strony.."$"))then local nazwa_strony=nazwy_modul["NAZWASTRONY"](pelna_nazwa_strony_podanej_lub_aktualnej); local przetworzona_nazwa_strony=p["TekstBezOdwołańDoParametrówWeWzorze"](nazwa_strony); local pelna_nazwa_strony_opisu, _=mw.ustring.gsub(zawartosc_komunikatu,"%$1",przetworzona_nazwa_strony) local pelna_strona_opisu=nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony_opisu); return pelna_strona_opisu; else return pelna_nazwa_strony_podanej_lub_aktualnej; end; end; p["CzyIstniejeDanaPrzestrzeńNazw"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_przestrzeni_nazw_lub_jego_identyfikator=PobierzParametr(1) or PobierzParametr("nazwa"); local klucz_projektu=PobierzParametr("klucz projektu"); local kod_jezyka=PobierzParametr("kod języka"); local kod_projektu=PobierzParametr("kod projektu"); local wiki_modul=require("Module:Wiki"); local czy_biezace_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} local nazwy_modul=require("Module:Nazwy"); local uchwyt_przestrzeni_nazw; if(czy_biezace_wiki)then uchwyt_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_lub_jego_identyfikator,uchwyt="tak",}; else uchwyt_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_lub_jego_identyfikator,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,uchwyt="tak",}; end; if(uchwyt_przestrzeni_nazw)then return "tak"; else return; end; end; p["WzórDanejPrzestrzeniNazw"] = function (frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); local wzor, _ = mw.ustring.gsub(nazwa,"(.)",function (s) return ((mw.ustring.match(s,"^%a$"))and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);end ) wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+"); wzor="[%s_]*"..wzor.."[%s_]*"; return wzor; end; p["WzórNazwyStrony"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local strona=PobierzParametr(1) or PobierzParametr("nazwa"); local wzor,_=mw.ustring.gsub(strona,"([%[%]%(%)%+%-%*%?%.%^%$%%'])","%%%1"); wzor,_=mw.ustring.gsub(wzor,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end); wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+"); wzor="[%s_]*"..wzor.."[%s_]*"; return wzor; end; p["WzórPełnejNazwyStrony"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local strona=PobierzParametr(1) or PobierzParametr("nazwa"); local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona); local nazwa_strony=nazwy_modul["NAZWASTRONY"](strona); if(nazwa_przestrzeni~="")then nazwa_przestrzeni=p["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni); end; nazwa_strony=p["WzórNazwyStrony"](nazwa_strony); return ((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_strony; end; p["TekstBezOdwołańDoParametrówWeWzorze"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("nazwa"); tekst=mw.ustring.gsub(tekst,"%%%%","%%%%%%"); tekst=mw.ustring.gsub(tekst,"%%(%d+)","%%%%%1"); return tekst; end; p["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("nazwa"); tekst=mw.ustring.gsub(tekst,"%%(%a+)","%%%%%1"); return tekst; end; p["PrzekształćWzórDoCzystegoTekstu"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("nazwa"); tekst=mw.ustring.gsub(tekst,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1"); return tekst; end; function p.CzyStronaIstniejeJejParametry(nazwa_strony_lub_uchwyt_strony,czy_zawartosc) local uchwyt_strony; local parametry_modul=require("Module:Parametry"); local czy_string=parametry_modul.TypeString(nazwa_strony_lub_uchwyt_strony); local TempFunc=function(uchwyt_strony) if(czy_zawartosc)then return nil,nil,false; else return false; end; end; if(czy_string)then uchwyt_strony = mw.title.makeTitle('',nazwa_strony_lub_uchwyt_strony); if(not uchwyt_strony)then return TempFunc();end; else uchwyt_strony=nazwa_strony_lub_uchwyt_strony; if(not uchwyt_strony)then return TempFunc();end; end; local id=uchwyt_strony.namespace; if((id==-1)or(id==-2))then local czy_istnieje=uchwyt_strony and uchwyt_strony.exists or nil; if(not czy_zawartosc)then return czy_istnieje; else return uchwyt_strony,nil,czy_istnieje; end; else local tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil; if(czy_zawartosc)then if(not tekst_artykulu)then return uchwyt_strony,nil,false; end; return uchwyt_strony,tekst_artykulu,true; end; if(not tekst_artykulu)then return false; end; return true; end; end; function p.PoliczZbiory(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local tekst=parametry_modul.CzyTak(args["tekst"]); local liczba_istniejacych_zbiorow=0; local tabela_uchwytow_stron={}; for _,nazwa_strony in ipairs(args) do local uchwyt_strony,tekst_artykulu,czy_istnieje = p.CzyStronaIstniejeJejParametry(nazwa_strony,true); tabela_uchwytow_stron[#tabela_uchwytow_stron+1]={uchwyt_strony,tekst_artykulu,}; if((uchwyt_strony)and(czy_istnieje)and((not tekst)or((tekst)and(tekst_artykulu))))then liczba_istniejacych_zbiorow=liczba_istniejacych_zbiorow+1; end; end; return liczba_istniejacych_zbiorow,tabela_uchwytow_stron; end; function p.TransformacjaWzoru(ciag) return mw.ustring.gsub(ciag,"[%^%$%(%)%%%.%[%]%*%+%-%?]","%%%1"); end; p["WyświetlajKodySpecjalne"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("nazwa"); local html_modul=require("Module:Html"); local i=html_modul.KodHTMLZnaku("&"); local hash=html_modul.KodHTMLZnaku("#"); local sr=html_modul.KodHTMLZnaku(";"); text=mw.ustring.gsub(text,"&#(%d+);",i..hash.."%1"..sr); text=mw.ustring.gsub(text,"&(%a+);",i.."%1"..sr); return text; end; function p.Wikikod(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1); local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template"; local nazwa_modulu=((parametry_modul["CzyTakCiąg"](przestrzen)) and (przestrzen..":") or "")..(nazwa or "Przykłowa strona"); local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); local szablonowe_modul=require("Module:Szablonowe"); local tab_komentarze={}; local licznik_komentarze=1; local tekst=stronicowyparser_tekst_modul.PobierzSpecjalniePrzygotowanyPreWikikodStrony(nil,nazwa_modulu,nil,false,nil,true,nil,nil,nil,nil,function(tekst_artykulu) tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz) local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze); tab_komentarze[licznik_komentarze]=komentarz; licznik_komentarze=licznik_komentarze+1; return kod; end); return tekst_artykulu; end); if(not tekst)then local blad_modul=require("Module:Błąd"); return blad_modul.error{args={tag="span",tekst="Nie ma takiej strony lub artykulu."}}; end; tekst=p["TekstBezOdwołańDoParametrówWeWzorze"](tekst); local html_modul=require("Module:Html"); tekst=mw.ustring.gsub(tekst,"&(%a+);","&amp;%1;"); tekst=mw.ustring.gsub(tekst,"&#(%d+);","&amp;#%1;"); local techniczne_dane_modul=mw.loadData("Module:Techniczne/dane"); local tab_szablonowa=techniczne_dane_modul.tablica_szablonowa; local tab_linki=techniczne_dane_modul.tablica_linki; local tab_tagow=techniczne_dane_modul.tablica_tagowa; local tabela_wikitabelowa=techniczne_dane_modul.tabela_wikitabelowa; local tab_zmienne=function(s) return techniczne_dane_modul.nazwy_szablony_systemowe[s] or techniczne_dane_modul.nazwy_szablony_zdefiniowane[s]; end; local tablica_analizy_obiektow_strony_dany_modul={}; local szablonowe_modul=require("Module:Szablonowe") local tekst=szablonowe_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(nil,tekst,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); local TekstBezKomentarzy=function(tekst,poczatek) tekst=mw.ustring.gsub(tekst,(poczatek or "")..szablonowe_modul.NormaWzoruKodowaniaTekstu("STARE"),function(kod) local kod=tonumber(kod); local szablon_komentarz=tablica_analizy_obiektow_strony_dany_modul["STARE"][kod]; if(mw.ustring.match(szablon_komentarz,szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ")))then return ""; end; return nil; end); --tekst=parametry_modul["Odstępy"](tekst); return tekst; end; local UsuwanieModyfikatoroweStron=function(nazwa,tabela_modyfikatorow) if(not tabela_modyfikatorow)then return nazwa,"";end; --local nazwa,komentarz=TekstBezKomentarzy(nazwa,"^[%s_]*"); local modyfikatory=""; repeat local ile_zmieniono=0; local __modyfikatory=nil; nazwa=mw.ustring.gsub(nazwa,"^([%s_]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu("STARE")..")",function(poczatek,kod) local kod=tonumber(kod); local szablon_komentarz=tablica_analizy_obiektow_strony_dany_modul["STARE"][kod]; if(mw.ustring.match(szablon_komentarz,szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ")))then __modyfikatory=poczatek; return ""; end; end); nazwa=mw.ustring.gsub(nazwa,"^(([%s_]*)(#?)([%s_]*)([^%s#:_]+)([%s_]*:))",function(calosc,a,b,c,d,e) d=b..TekstBezKomentarzy(d)..":"; if(tabela_modyfikatorow[d])then ile_zmieniono=ile_zmieniono+1; modyfikatory=modyfikatory..(__modyfikatory or "")..calosc; return ""; end; return nil; end); if(ile_zmieniono==0)then nazwa=(__modyfikatory or "")..nazwa; end; until (ile_zmieniono==0); return nazwa,modyfikatory; end; local ZamieniajZnakiNaMikroSzablony=function(szablon,__funkcja) szablon=mw.ustring.gsub(szablon,"(.)",function(znak) local odpowied; if(__funkcja)then odpowied=__funkcja(znak); else odpowied=tab_linki[znak] or tab_szablonowa[znak]; end; if(odpowied)then return odpowied;end; return znak; end); return szablon; end; local CzyBezDwukropka=function(dwukropki) return (not mw.ustring.match(dwukropki,":") and "tak" or ""); end; tekst=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,tekst,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) if(obiekt=="SZABLON")then local szablon_old=szablon; szablon=TekstBezKomentarzy(szablon); local pseudoszablon,tabela_modyfikatorow=szablonowe_modul["NazwaSzablonuWywołania"](szablon); if((pseudoszablon)and(((tabela_modyfikatorow)and((szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow)) or(tabela_modyfikatorow["#invoke:"]) or(tabela_modyfikatorow["int:"])) and(not mw.ustring.match(pseudoszablon,"^[%s_]*#?[%s_]*a+[%s_]*:"))) or((not tabela_modyfikatorow)and(not mw.ustring.match(pseudoszablon,"^[%s_]*#?[%s_]*a+[%s_]*:"))) ))then local UstawianieLinkowe=function(szablon,ktore) local SzablonStrona=function(szablon) local strona=TekstBezKomentarzy(szablon); strona=parametry_modul["Odstępy"](strona); local nazwa,modyfikatory=UsuwanieModyfikatoroweStron(szablon,tabela_modyfikatorow); strona=mw.ustring.gsub(strona,"=","{{=}}"); nazwa=mw.ustring.gsub(nazwa,"=","{{=}}"); return "{{s|oryginalna=tak|analiza=tak|"..strona .."|nazwa="..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1)..nazwa..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1) .."|modyfikatory="..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1)..modyfikatory..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1) ..(ktore and "|" or "}}"); end; if(ktore)then szablon=mw.ustring.gsub(szablon,"=","{{=}}"); szablon,ile=mw.ustring.gsub(szablon,"^{{([^|]-)|",function(szablon) return SzablonStrona(szablon); end); else szablon=mw.ustring.gsub(szablon,"^{{([^|]-)}}",function(szablon) return SzablonStrona(szablon); end); end; return szablon; end; if(mw.ustring.match(szablon_old,"|"))then if(mw.ustring.match(szablon,"^{{[^|]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu().."[^|]*|"))then szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa); return szablon_old; else return UstawianieLinkowe(szablon_old,true); end; else if(mw.ustring.match(szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa); return szablon_old; end; if(pseudoszablon)then if(((not tabela_modyfikatorow)or((not tabela_modyfikatorow["int:"])and(not tabela_modyfikatorow["#invoke:"])))and(tab_zmienne(pseudoszablon)))then szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa); return szablon_old; else return UstawianieLinkowe(szablon_old,false); end; else return UstawianieLinkowe(szablon_old,false); end; end; else szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa); return szablon_old; end; elseif(obiekt=="LINKW")then local __szablon=TekstBezKomentarzy(szablon); local __dwukropki,__strona=mw.ustring.match(__szablon,"^%[%[([%s_:]*)([^%[%]%|]+)%]%]$"); if(__strona)then if(mw.ustring.match(__szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then szablon=ZamieniajZnakiNaMikroSzablony(szablon); return szablon; else local strona=mw.ustring.match(szablon,"^%[%[([^%[%]%|]+)%]%]$"); return "{{l|"..strona.."|s="..__strona.."|bd="..CzyBezDwukropka(__dwukropki).."}}" end; else local __dwukropki,__strona,__nazwa=mw.ustring.match(__szablon,"^%[%[([%s_:]*)([^%[%]%|]+)|(.*)%]%]$"); if(mw.ustring.match(__strona,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then szablon=ZamieniajZnakiNaMikroSzablony(szablon); return szablon; else local strona,nazwa=mw.ustring.match(szablon,"^%[%[([^%[%]%|]+)|(.*)%]%]$"); return "{{l|"..strona.."|"..nazwa.."|s="..__strona.."|bd="..CzyBezDwukropka(__dwukropki).."}}"; end; end; elseif(obiekt=="LINKZ")then local __szablon=TekstBezKomentarzy(szablon); local __strona=mw.ustring.match(__szablon,"^%[%s*(%S+)%s*%]$"); if(__strona)then if(mw.ustring.match(__szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then szablon=ZamieniajZnakiNaMikroSzablony(szablon); return szablon; else local strona,nazwa=mw.ustring.match(szablon,"^%[(%s*%S+)(%s*)%]$"); return "{{z|"..strona.."|"..nazwa.."|s="..__strona.."}}"; end; else local __strona,__nazwa=mw.ustring.match(__szablon,"^%[(%s*%S+)(%s+.-)%]$"); if(mw.ustring.match(__strona,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then szablon=ZamieniajZnakiNaMikroSzablony(szablon); return szablon; else local strona,nazwa=mw.ustring.match(szablon,"^%[(%s*%S+)(%s+.-)%]$"); return "{{z|"..strona.."|"..nazwa.."|s="..__strona.."}}"; end; end; elseif(obiekt=="ZMIENNA")then szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak) local odpowied=tab_szablonowa[znak]; return odpowied; end); return szablon; elseif((obiekt=="NOWIKI") or(obiekt=="PRE") or(obiekt=="MATH") or(obiekt=="ŹRÓDŁO") or(obiekt=="GALERIA") or(obiekt=="MAPAOBRAZU") or(obiekt=="PUDEŁKOWEJŚCIA") )then szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak) local odpowied=tab_linki[znak] or tab_szablonowa[znak] or tab_tagow[znak]; return odpowied; end); return szablon; elseif(obiekt=="QUIZ")then szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak) local odpowied=tab_szablonowa[znak] or tab_tagow[znak]; return odpowied; end); return szablon; elseif((obiekt=="ZNACZNIK")or(obiekt=="INCLUDE"))then szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak) local odpowied=(znak~="\"")and tab_tagow[znak] or nil; return odpowied; end); return szablon; elseif(obiekt=="ATRYBUTY")then szablon=mw.ustring.gsub(szablon,szablonowe_modul.NormaWzoruKodowaniaEncodeWikiTekstu("(UCIECZKI)"),function(obiekt,kod) kod=tonumber(kod); local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; return szablon; end); szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak) local odpowied=tab_tagow[znak] or nil; return odpowied; end); return szablon; elseif(obiekt=="WIKITABELA")then szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak) local odpowied=tabela_wikitabelowa[znak]; return odpowied; end); return szablon; elseif(obiekt=="INNEPRE")then --szablon=mw.ustring.gsub(szablon,"^[^%S\n]","&amp;nbsp;"); return szablon; else return szablon; end; end); tekst=frame:getParent():preprocess(tekst); tekst=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ"),function(kod) kod=tonumber(kod); local komentarz=tab_komentarze[kod]; komentarz=mw.ustring.gsub(komentarz,"^<!%-%-(.-)%-%->$",function(zawartosc) return "&lt;!--"..zawartosc.."--&gt;"; end); return komentarz; end); return tekst; end; p.WikikodStrony = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1); local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template"; if(not parametry_modul.CzyTak(nazwa))then return;end; local title=mw.title.makeTitle(przestrzen,nazwa); local text=title and title:getContent() or false; if(not text)then return;end; text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.-</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)",""); text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1"); return text; end; function p.LuaSubst(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local strona=args[1] or args["strona"]; if(not strona)then local blad_modul=require("Module:Błąd"); return blad_modul.error{args={tag="span",tekst="Nazwa strony jest niepodana."}}; end; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); local tekst=stronicowyparser_tekst_modul.PobierzSpecjalniePrzygotowanyPreWikikodStrony(nil,strona,nil,false,nil,true,true); if(not tekst)then local blad_modul=require("Module:Błąd"); return blad_modul.error{args={tag="span",tekst="Niepoprawna nazwa strony lub nie istnieje."}}; end; local inkludowany=parametry_modul.CzyTak(args["inkludowana"]); if(inkludowany)then 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"); else local dokumentacja=parametry_modul.CzyTak(args["dokumentacja"]); if(dokumentacja)then tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","%1"); 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]>",""); end; end; return tekst; end; p["LuaSurowySzablonSubst"] = function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local strona=args["strona"]; if(not strona)then local blad_modul=require("Module:Błąd"); return blad_modul.error{args={tag="span",tekst="Nazwa strony jest niepodana."}}; end; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); local tekst=stronicowyparser_tekst_modul.PobierzSpecjalniePrzygotowanyPreWikikodStrony(nil,strona,nil,false,nil,true,true); if(not tekst)then local blad_modul=require("Module:Błąd"); return blad_modul.error{args={tag="span",tekst="Niepoprawna nazwa strony lub nie istnieje."}}; end; --- --- local tablica_analizy_obiektow_strony_dany_modul={}; local szablonowe_modul=require("Module:Szablonowe"); local techniczne_dane_modul=mw.loadData("Module:Techniczne/dane"); local tekst=szablonowe_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(nil,tekst,nil,tablica_analizy_obiektow_strony_dany_modul,nil, function(szablon,obiekt,kod,tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul,numer_szablonu) if(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"", nil,nil, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if((not tabela_parametrow_szablonu)or(not nazwa_szablonu))then return;end; if(nazwa_szablonu=="Moduł:Ramka")then local Funkcja=tabela_parametrow_szablonu[true]; if((not Funkcja)or(Funkcja~="Szablon"))then return;end; local pelna_nazwa_szablonu=tabela_parametrow_szablonu["Nazwa"]; if(not pelna_nazwa_szablonu)then return;end; pelna_nazwa_szablonu="Szablon:"..pelna_nazwa_szablonu; local tekst=stronicowyparser_tekst_modul.PobierzSpecjalniePrzygotowanyPreWikikodStrony(nil,pelna_nazwa_szablonu,nil,false,nil,true,true); if(not tekst)then return;end; local tablica_analizy_obiektow_strony_dany_modul={}; local szablonowe_modul=require("Module:Szablonowe"); tekst=szablonowe_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(nil,tekst,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst) 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(wartosc_zmiennej)then return wartosc_zmiennej; end; end; end,nil,nil,nil,nil, function(tekst_artykulu,tab_element) return nil,true,nil,true; end, function(nazwa) return true; end); tekst=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,tekst,nil,tablica_analizy_obiektow_strony_dany_modul); return tekst; end; end); if(wynik)then return wynik;end; end; return; end,nil,nil,nil,nil, function(tekst_artykulu,tab_element) return nil,true,nil,true; end, function(nazwa) return true; end); local specjalne_modul=require("Module:Specjalne"); local tab_modyfikatory={["#if:"]=true,["#ifeq:"]=true,["#ifexist:"]=true,["#ifexpr:"]=true,}; local tab_mediawiki=function(s) return techniczne_dane_modul.nazwy_szablony_systemowe[s] or techniczne_dane_modul.nazwy_szablony_zdefiniowane[s]; end; local tabela_zmiennych={["site"]=true;}; local tablica_danych_parametrow_szablonu_strony={}; local function UsuwanieZnacznikoweZmiennychNumerowanychElementowychAlternatywnych(szablon) local ile=0; local szablon=mw.ustring.gsub(szablon,"({{{.+}}})",function(zmienna) local numerowana=mw.ustring.match(zmienna,"^{{{%s*(%d+)%s*|"); if(numerowana)then local ile2=0; zmienna=mw.ustring.gsub(zmienna,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c) if(b=="")then ile=ile+1; ile2=ile2+1; return a..c; end; end); return (ile2>0)and zmienna or nil; end; end); return szablon,ile; end; local function UsuwaniePseudoSzablonowe(szablon) szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,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,"", function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if(tab_mediawiki(nazwa_szablonu))then return ""; end; end,nil,nil,nil,nil,nil,nil,nil,nil,nil, function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$"))); return wynik; end, function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) return false; end); if(wynik)then return wynik;end; end; return nil, true; end); return szablon; end; local function PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if(tabela_modyfikatorow)then for name,value in pairs(tabela_modyfikatorow)do if(tab_modyfikatory[name])then local warunek,dalej=mw.ustring.match(szablon,"^{{([^{}|]+)(.-)$"); if(warunek)then local iterator=szablonowe_modul.IteratorSzablonowyZakodowanegoTekstu(nil,dalej,nil,tablica_analizy_obiektow_strony_dany_modul); local czy_usunac_kreski_pionowe=false; for szablon_dalej,obiekt_dalej,kod_dalej in iterator do if(obiekt_dalej=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon_dalej,tablica_danych_parametrow_szablonu_strony,kod_dalej,"", function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if((mw.ustring.match(nazwa_szablonu,"^Infobox .*$"))or(mw.ustring.match(nazwa_szablonu,"^Link%u")))then return true; end; end,nil,nil,nil,nil,nil,nil,nil,nil,nil, function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$"))); return wynik; end, function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) return false; end); if(wynik)then czy_usunac_kreski_pionowe=true; break; end; elseif(obiekt_dalej=="LINKW")then local wynik=specjalne_modul["CzyLinkWewnętrzny"](szablon_dalej); if(wynik)then czy_usunac_kreski_pionowe=true; break; end; end; end; if(czy_usunac_kreski_pionowe)then warunek=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,warunek,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji) if(obiekt=="ZMIENNA")then szablon=UsuwaniePseudoSzablonowe(szablon); szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c) if(b=="")then return a..c; end; end); return szablon; end; end); return "{{"..warunek..dalej; else local warunek=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,warunek,nil,tablica_analizy_obiektow_strony_dany_modul); return "{{"..warunek..dalej; end; end; end; end; end; end; local function PlikowePrzetwarzanie(szablon,obiekt,kod) local szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji) if(obiekt=="ZMIENNA")then szablon=UsuwaniePseudoSzablonowe(szablon); local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|"); if(not numerowana)then szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c) if(b=="")then return a..c; end; end); end; return szablon; end; return nil,true; end); return szablon; end; local function PrzetwarzanieDivowe(szablon,obiekt,kod) local szablon,ile=UsuwanieZnacznikoweZmiennychNumerowanychElementowychAlternatywnych(szablon); szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji) if(obiekt=="ZMIENNA")then szablon=UsuwaniePseudoSzablonowe(szablon); local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|"); if(numerowana)then szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c) if(b=="")then return a..c; end; end); end; return szablon; elseif(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"", function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) local szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji) if(obiekt=="ZMIENNA")then szablon=UsuwaniePseudoSzablonowe(szablon); local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|"); if(not numerowana)then szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c) if(b=="")then return a..c; end; end); end; return szablon; end; return nil,true; end); return szablon; end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) local wynik=PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod); return wynik; end,nil,nil,nil,nil,nil,nil,nil,nil, function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$"))); return wynik; end, function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) return false; end); if(wynik)then return wynik;end; return nil,true; elseif(obiekt=="LINKW")then if(specjalne_modul["CzyPlik"](szablon))then szablon=PlikowePrzetwarzanie(szablon,obiekt,kod); return szablon; end; end; return nil,true; end); return szablon; end; local function PrzetwarzanieSzablonowe(szablon,obiekt,kod) local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"", function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) local infobox=mw.ustring.match(nazwa_szablonu,"^Infobox .*$"); local link=mw.ustring.match(nazwa_szablonu,"^Link%u"); if((infobox)or(link))then if((link)and(not infobox))then szablon="<span style{{=}}\"position:relative;z-index:100;\">"..szablon.."</span>"; end; local szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,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,"", function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) return nil; end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) local wynik=PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod); if(wynik)then return wynik;end; end,nil,nil,nil,nil,nil,nil,nil,nil, function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$"))); return wynik; end, function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) return false; end); if(wynik)then return wynik;end; return nil,true; elseif(obiekt=="ZMIENNA")then szablon=UsuwaniePseudoSzablonowe(szablon); szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c) if(((infobox)and(b==""))or((link)and((tonumber(a1))or(tabela_zmiennych[a1]))))then return a..c; end; end); return szablon; elseif(obiekt=="LINKW")then if(specjalne_modul["CzyPlik"](szablon))then szablon=PlikowePrzetwarzanie(szablon,obiekt,kod); return szablon; end; return nil,true; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="div")then szablon=PrzetwarzanieDivowe(szablon,obiekt,kod); return szablon; end; return nil,true; end; return szablon; end); return szablon; end; end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) local wynik=PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod); if(wynik)then return wynik;end; end,nil,nil,nil,nil,nil,nil,nil,nil, function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$"))); return wynik; end, function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) return false; end); return wynik; end; tekst=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,tekst,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji) if(obiekt=="SZABLON")then szablon=PrzetwarzanieSzablonowe(szablon,obiekt,kod); if(szablon)then return szablon;end; elseif(obiekt=="ZMIENNA")then local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|"); if(not numerowana)then szablon=UsuwaniePseudoSzablonowe(szablon); szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c) if(b=="")then return a..c; end; end); return szablon; end; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="div")then szablon=PrzetwarzanieDivowe(szablon,obiekt,kod); return szablon; end; elseif(obiekt=="LINKW")then if(specjalne_modul["CzyPlik"](szablon))then szablon=PlikowePrzetwarzanie(szablon,obiekt,kod); return szablon; else local wynik=specjalne_modul["CzyLinkWewnętrzny"](szablon); if(wynik)then local spanramka="<span style{{=}}\"position:relative;z-index:100;\">"..szablon.."</span>"; return spanramka; end; end; end; return szablon; end); return tekst; end; function p.NowaLinia(frame) return "\n"; end; function p.Nowiki(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local PobierzParametr=parametry_modul.PobierzParametr(args); local tekst=PobierzParametr("tekst") or PobierzParametr(1); local sprawdz_modul=require("Module:Sprawdź"); tekst=sprawdz_modul["UsuńKategorięSprawdzaniaParametrówSzablonu"]{args={[1]=tekst,},} tekst=mw.ustring.gsub(tekst,"([&<>={}|!%+%-%*;:#\"\'%[%]/\\])",function(znak) return "&#"..mw.ustring.byte(znak)..";"; end); return tekst; end; function p.FunkcjaLua(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local modul=require("Module:"..(args[1] or args["moduł"])); if(modul)then if(modul[asgs[2] or args["nazwa"] or args["funkcja"]])then local args2=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,{[1]=true,["moduł"]=true,[2]=true,nazwa=true,funkcja=true,["wyspecjalizowana"]=true,}) return modul[args[2] or args["nazwa"] or args["funkcja"]](args2); end; end; end; p["RozwińSzablonWzględemPodanychParametrów"] = function (frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame) local PobierzParametr=parametry_modul.PobierzParametr(args); local nazwa=PobierzParametr("Nazwa strony") or PobierzParametr("Nazwa") or "Nazwa strony"; local przestrzen=PobierzParametr("Miano przestrzeni nazw") or PobierzParametr("Przestrzeń") or "Template"; local title=mw.title.makeTitle(przestrzen,nazwa); local text=title and title:getContent() or nil; if(not text)then local blad_modul=require("Module:Błąd"); return blad_modul.error{args={tag="span",tekst="Strona nie istnieje lub nie ma zawartości."}}; end; text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.-</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)",""); text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1"); local bezkluczy={ ["Nazwa strony"]=true, ["Nazwa"]=true, ["Miano przestrzeni nazw"]=true, ["Przestrzeń"]=true, ["wyspecjalizowana"]=true, ["nie rozwiń"]=true, }; local tab=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,bezkluczy); local frame2=mw.getCurrentFrame():newChild{title=(parametry_modul.CzyTak(przestrzen)and (przestrzen..":"..nazwa) or nazwa),args=tab}; text=parametry_modul.CzyTak(frame.args["nie rozwiń"]) and text or frame2:preprocess(text); return text; end; p["LiczbaBajtówCiąguDoNormy"] = function(frame) local str=frame.args[1] or frame.args["ciąg"]; local ile=tonumber(frame.args[2] or frame.args["norma"]); if(not ile)then return #str;end; if(#str<=ile)then return #str; end; return nil; end; p["LiczbaStronJakoPozycjeDanejKategorii"] = function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local kategoria=parametry_modul.CzyTak(args["kategoria"]) and args["kategoria"] or "Category:Przykładowa kategoria"; local kat={ ["subcats"]=true, ["files"]=true, ["pages"]=true, } local typ=args["typ"]; typ=(typ and kat[args["typ"]]) and args["typ"] or "all"; local nazwy_modul=require("Module:Nazwy"); kategoria=nazwy_modul["NAZWASTRONY"](kategoria); return mw.site.stats.pagesInCategory(kategoria,typ); end; p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"] = 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[-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 return tablica_danych_parametrow_szablonu_strony_numer_kod.adres_strony; end; end; end; --- local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local adres_wzgledny=PobierzParametr(1) or PobierzParametr("względny"); if(not mw.ustring.match(adres_wzgledny,"/"))then return adres_wzgledny;end; local adres_biezacy=PobierzParametr(2) or PobierzParametr("bieżący"); local adres; local dwukropek; if(mw.ustring.match(adres_wzgledny,"^[%s_]*/"))then if(adres_biezacy)then adres_biezacy,dwukropek=mw.ustring.gsub(adres_biezacy,"^[%s_]*:",""); adres=adres_biezacy..adres_wzgledny; else return nil; end; else if((mw.ustring.match(adres_wzgledny,"^[%s_]*%.[%s_]*/"))or(mw.ustring.match(adres_wzgledny,"^[%s_]*%.[%s_]*%.[%s_]*/")))then if(adres_biezacy)then adres_biezacy,dwukrowek=mw.ustring.gsub(adres_biezacy,"^[%s_]*:",""); adres=adres_biezacy.."/"..adres_wzgledny; else return nil; end; else adres_wzgledny,dwukropek=mw.ustring.gsub(adres_wzgledny,"^[%s_]*:",""); adres=adres_wzgledny; end; end; if(adres~="")then while((mw.ustring.match(adres,"/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/"))or(mw.ustring.match(adres,"/[%s_]*%.[%s_]*/"))or(mw.ustring.match(adres,"/[%s_]*/")))do adres=mw.ustring.gsub(adres,"/[%s_]*/","/"); adres=mw.ustring.gsub(adres,"/[%s_]*%.[%s_]*/","/"); adres=mw.ustring.gsub(adres,"/+","/"); adres=mw.ustring.gsub(adres,"^/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/","/"); adres=mw.ustring.gsub(adres,"^[^/]*/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/","/",1); adres=mw.ustring.gsub(adres,"/([^/]*)/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/","/",1); end; adres=mw.ustring.gsub(adres,"[%s_]*/[%s_]*","/"); adres=mw.ustring.gsub(adres,"^[%s_]*/+",""); adres=mw.ustring.gsub(adres,"[%s_]*/+","/"); adres=mw.ustring.gsub(adres,"/+[%s_]*$",""); adres=mw.ustring.gsub(adres,"^[%s_]*",""); adres=mw.ustring.gsub(adres,"[%s_]*$",""); adres=mw.ustring.gsub(adres,"[%s_]+"," "); end; local wynik=(((dwukropek)and(dwukropek>0)) and ":" or "")..adres; ----- 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]; 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.adres_strony=wynik; end; ----- return wynik; end; function p.PrzekierowanieDoStrony(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_modulu=PobierzParametr(1); local html_modul=require("Module:Html"); local pudelko_modul=require("Module:Pudełko"); nazwa_modulu=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_modulu); local czy_nazwa_niepoprawna=pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_modulu); if(czy_nazwa_niepoprawna)then mw.log("Niepoprawna nazwa modulu strony: "..(parametry_modul["CzyTakCiąg"](nazwa_modulu) and nazwa_modulu or "(nazwa pusta)").."."); return; end; local title=mw.title.makeTitle('',nazwa_modulu); if(title)then local strona=title.redirectTarget; if(not strona)then return;end; return html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](strona.fullText); else mw.log("Nieprawidłowy format nazwy modułu przy uzyskiwaniu, czy strona jest odnośnikiem do innej strony: "..(parametry_modul["CzyTakCiąg"](nazwa_modulu) and nazwa_modulu or "(nazwa pusta)").."."); return; end; end; function p.UsuwanieKomentarzowe(tekst,__FUNKCJA_USUWANIA) local tekst=mw.ustring.gsub(tekst,"(<!%-%-.-%-%->)",__FUNKCJA_USUWANIA or ""); return tekst; end; function p.UsuwanieZnakoweKontrolneNiewidzialne(tekst,__FUKCJA_USUWANIA) local tekst=mw.ustring.gsub(tekst,"([^%C\n\t ])",__FUKCJA_USUWANIA or ""); return tekst; end; p["Forma wyrażenia po liczbie"] = function(frame) local parametry_modul=require("Module:Parametry"); local czy_table_frame=parametry_modul.TypeTable(frame); local args=czy_table_frame and (frame.args or frame) or nil; local argument_funkcji_modulu_1=czy_table_frame and (args[1] or "0") or (frame or "0"); local argument_funkcji_modulu_2=czy_table_frame and (args[2] or "zbiorów") or "zbiorów"; local argument_funkcji_modulu_3=czy_table_frame and (args[3] or "zbiór") or "zbiór"; local argument_funkcji_modulu_4=czy_table_frame and (args[4] or "zbiory") or "zbiory"; local bez_liczby=parametry_modul.CzyTak(args["bez liczby"]); local specjalne_modul=require("Module:Specjalne"); local liczba_number=specjalne_modul["WydzielLiczbę"](argument_funkcji_modulu_1); if(not liczba_number)then return "(błąd)";end; local liczba_number=math.abs(liczba_number); if(liczba_number==0)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_2;end; if(liczba_number==1)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_3;end; if(liczba_number<5)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_4;end; if(liczba_number<20)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." ")).." "..argument_funkcji_modulu_2;end; local reszta=math.fmod(liczba_number,20); if(reszta==0)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." ")).." "..argument_funkcji_modulu_2;end; if(reszta==1)then if(liczba_number<20)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_3; else return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_2 end; end; if(reszta<5)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_4;end; return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_2; end; return p; 2p48wfe5m342ld5wgg2d54nej7bbfab Szablon:Big/opis 10 56544 553350 517329 2026-08-27T20:46:18Z Persino 2851 /* Użycie */ 553350 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY --> == Użycie == Szablon pozwala na zwiększenie czcionki w tekście, oparty na obsłudze tagów: {{Tag|big}} (jest to element liniowy) - (tagi języka HTML), oraz identyfikatorów: {{Code|id}}, styli: {{Code|style}} (właściwości i ich zawartości przedstawiający język CSS), klas: {{Code|class}} (reguł w kaskadowych arkuszach stylów) i atrybutów (inne niż: {{Code|id}}, {{Code|style}} i {{Code|class}}), elementu HTML. Użycie: {{s|Big|kod}}, gdy w kodzie znajdują się znaki "=", to w nim należy stosować szablon {{s|{{=}}}}. Tekst jest umieszczany, wewnątrz tego szablonu, pomiędzy tymi tagami. == Opis parametrów == ; Wywołanie {{Pre|{{s|Big|1{{=}}|id{{=}}|styl{{=}}|klasa{{=}}|atrybuty{{=}}}}}} Szablon {{s|Big}}, przyjmuje argumenty, którego wartości wraz z odpowiednimi nazwami, oprócz zmiennej {{Code|1}}, w nim, wsadza on do tagu, coś w rodzaju: {{Tag|tag|parametry=nazwa="wartość"}}, obsługiwanego przez niego znacznika, przez którego on jest oparty, a oto lista tych zmiennych poniżej. ; Parametry * {{Code|1}} - zawartość tekstu pomiędzy znacznikami - wymagany, * {{Code|id}} - unikatowy identyfikator, znacznika - sugerowany, * {{Code|styl}} - styl CSS znacznika - właściwości i ich wartości - opcjonalny, * {{Code|klasa}} - reguły CSS, do klasy znacznika, czyli zbioru właściwości i ich wartości - opcjonalny, * {{Code|atrybuty}} - atrybuty znacznika (inne niż: {{Code|id}}, {{Code|styl}} i {{Code|class}}) - opcjonalny. ---- Powyższe parametry oprócz pierwszego są opcjonalne za wyjątkiem parametru: {{Code|id}}, który jest sugerowany. == Wikikod, zbudowany za pomocą szablonu znaczników (kombajnu) == Szablon {{s|Big}} ma kod w zależności od znacznika: {{s|Znacznik}}, przedstawiający się: ; Szablon {{s|Big}} {{PreWikikod|Big}} == Przykłady == Najprostszym możliwym przypadkiem jest nieużycie żadnego parametry tego szablonu. ; Przykład {{Pre|Oto jest tekst przed tym szablonem: {{s|Big|Oto jest tekst do analizy}}, a tutaj po.}} ; Wynik {{Pre|Oto jest tekst przed tym szablonem: {{Big|Oto jest tekst do analizy}}, a tutaj po.}} === Tabelka z przykładami dla szablonu: {{s|Big}}, czyli przy znaczniku: {{Tag|big}}=== Style są w oparciu o kaskadowe arkusze stylów, które są napisane w stylach przykładów: {{ls2|Znacznik/przykłady.css}}. W poniższych przykładach należy pamiętać o napisaniu: {{ŹródłoXml|{{Mniejszy}}templatestyles src{{=}}"Szablon:Znacznik/przykłady.css" /{{Większy}}}} Zatem: <templatestyles src="Szablon:Znacznik/przykłady.css" /> {{Tabela przykładów użycia szablonów| {{Przykład użycia szablonu w tabeli|tytuł=Big|Oto jest tekst do analizy|przed=Tekst przed.|po=Tekst po.|2=styl=color:darkslategray;background-color:ivory;border:darkblue 1px solid;}} {{Przykład użycia szablonu w tabeli|tytuł=Big|Oto jest tekst do analizy|przed=Tekst przed.|po=Tekst po.|2=styl=color:darkslategray;|3=id=przykład2}} {{Przykład użycia szablonu w tabeli|tytuł=Big|Oto jest tekst do analizy|przed=Tekst przed.|po=Tekst po.|2=klasa=kolor tło obramowanie}} }} Widzimy w powyższej tabelce, że niezależnie jak napiszemy znacznik {{Tag|big}}, to wynik otrzymujemy taki sam, a to rozplanowanie stylów zrobiliśmy poprzez rozdzielenie stylów pomiędzy atrybutami {{Code|style}}, {{Code|class}} lub {{Code|id}}. == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Tekst, który ma się stać kodem o zwiększonym rozmiarze.", "type": "string", "required": true }, "styl": { "description": "Styl CSS, właściwości i ich wartości.", "type": "string" }, "klasa": { "description": "Reguły CSS, do klasy, kaskadowych arkuszy stylów.", "type": "string" }, "id": { "description": "Unikatowy identyfikator.", "type": "string", "suggested": true }, "atrybuty": { "description": "Atrybuty, inne niż: id, style i class.", "type": "string" } }, "paramOrder": [ "1", "id", "styl", "klasa", "atrybuty" ], "description": "Szablon nadający tekstowi, zwiększone rozmiarze, w elemencie: <big>...</big>." } </templatedata> == Zobacz też == * Szablony oparte o element liniowy, o tekście, pomiędzy znacznikami, wsadzony do wnętrza tego szablonu: ** {{s|Small}} - szablon, drukuje tekst, o zmniejszonej czcionce, oparty jest o znacznik: {{Tag|small}}, ** {{s|Strong}} - szablon, drukuje tekst, o pogrubionej czcionce, oparty jest o znacznik: {{Tag|strong}}, * {{s|Znacznik}} - szablon, o który ten szablon, jest zbudowany, w oparciu o element liniowy: {{Tag|big}}. {{Szablony ramek formułujące kod}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony do formatowania tekstu | Szablony ramek tworzące kod HTML | Szablony znaczników }} </includeonly> 5jg9ajk592yvuzp3jrtzbu81h40qoql Moduł:Html 828 56560 553335 542690 2026-08-27T13:28:46Z Persino 2851 553335 Scribunto text/plain local p={}; function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja) local szeregi_modul=require("Module:Szeregi"); wzor=wzor or "&([^&;%s]+);" html=szeregi_modul.SzeregiOmijanieFunkcyjne(html,normalnie,wzor,funkcja, function(kod) return "&"..kod..";"; end); return html; end; p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); tekst=mw.ustring.gsub(tekst,"([%|%[%]%(%)%+%-%*%?%.%^%$%%'])",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) return tekst; end; p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); tekst=mw.ustring.gsub(tekst,"&#(%d+);",function (s) return tostring(mw.ustring.char(s));end); tekst=mw.ustring.gsub(tekst,"&#x(%x+);", function(n) return mw.ustring.char(tonumber(n, 16));end); return tekst; end; function p.ZnakiSpecjalneTaguNowiki(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_nawiasy=html_dane_modul.tabela_nawiasowa; tekst=mw.ustring.gsub(tekst,"([%!{}|=<>%[%]])",tab_nawiasy); return tekst; end; function p.ZnakiSpecjalneWikiLinku(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_nawiasy=html_dane_modul.tabela_nawiasowa; tekst=mw.ustring.gsub(tekst,"([{}|<>%[%]])",tab_nawiasy); return tekst; end; function p.EncodeSpecjalneZnakiHtml(frame,normalnie) local parametry_modul=require("Module:Parametry"); local PobierzParametryRamki=parametry_modul.PobierzParametryRamki(frame); local html=PobierzParametryRamki("html"); local __normalnie=PobierzParametryRamki("normalnie"); normalnie=parametry_modul.CzyTak(__normalnie) or normalnie; --- local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_nawiasy=html_dane_modul.tabela_nawiasowa; local wzor_kody="([{}|<>%[%]#=%?&])"; html=p.KodowanieOmijanieFunkcyjne(html,normalnie,nil,function(ciag) ciag=mw.ustring.gsub(ciag,wzor_kody,tab_nawiasy); return ciag; end); return html; end; function p.EncodeZnakProloguList(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_nawiasy=html_dane_modul.tabela_nawiasowa; local lista_znaki="%#%*%;%:"; tekst=mw.ustring.gsub(tekst,"^\n?(["..lista_znaki.."])",tab_nawiasy); tekst=mw.ustring.gsub(tekst,"\n(["..lista_znaki.."])",function(znak) return "\n"..(tab_nawiasy[znak] or znak); end); return tekst; end; function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie) local parametry_modul=require("Module:Parametry"); local PobierzParametryRamki=parametry_modul.PobierzParametryRamki(frame); local tekst=PobierzParametryRamki("tekst"); local __normalnie=PobierzParametryRamki("normalnie"); normalnie=parametry_modul.CzyTak(__normalnie) or normalnie; --- local html_dane_modul=mw.loadData("Module:Html/dane"); local tabela_nawiasowa=html_dane_modul.tabela_nawiasowa; tekst=p.KodowanieOmijanieFunkcyjne(tekst,normalnie,nil,function(ciag) ciag=mw.ustring.gsub(ciag,"([=%?&])",tabela_nawiasowa); return ciag; end); return tekst; end; function p.PrzypisanieZnakoweEncodeHtml(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tabela_nawiasowa=html_dane_modul.tabela_nawiasowa; tekst=mw.ustring.gsub(tekst,"([=])",tabela_nawiasowa); return tekst; end; function p.ZamianaDwukropkaNaKodHtml(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tabela_nawiasowa=html_dane_modul.tabela_nawiasowa; tekst=mw.ustring.gsub(tekst,"([:])",tabela_nawiasowa); return tekst; end; function p.KodHTMLZnaku(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local znak=PobierzParametr(1); if(not parametry_modul.CzyTak(znak))then return "(błąd)";end; local czy_kod_znaku=PobierzParametr(2); local czy_tak=parametry_modul["CzyTakCiąg"](czy_kod_znaku); local ZnakFun=function(znak) if(#znak>1)then return mw.ustring.codepoint(znak); else return mw.ustring.byte(znak); end; end; if(czy_tak)then return "&amp;&num;"..tostring(ZnakFun(znak))..";"; else return "&#"..tostring(ZnakFun(znak))..";"; end; end; p["KodyHTMLZnakówWikiCiągu"] = function (frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local ciag_znakow=PobierzParametr(1); if(not parametry_modul.CzyTak(ciag_znakow))then return "(błąd)";end; local czy_kod_znaku=PobierzParametr(2); local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_znakowo_kodowa={}; local tabela_znakowa=html_dane_modul.tabela_znakowa; local ciag,_=mw.ustring.gsub(ciag_znakow,"(.)",function(znak) if(tabela_znakowa[znak])then if(not czy_kod_znaku)then return "&#"..tabela_znakowa[znak]..";"; else return "&amp;&num;"..tabela_znakowa[znak]..";"; end; end; return nil; end); return ciag; end; function p.EncodeId(id,bez_transformacji) id=(not bez_transformacji) and p.DecodeHtml(id,true) or id; local id=p.EncodeSpecjalneZnakiHtml(id,true); return id; end; function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr) parametr=mw.ustring.gsub(parametr,"‎",""); return parametr; end; function p.EncodeWiki(parametr,czy_nie_odstepy) parametr=p["TransformacjaKoduHtmlDoZnakuCiągu"](parametr); parametr=p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr); local parametry_modul=require("Module:Parametry"); if(not czy_nie_odstepy)then parametr=parametry_modul["Odstępy"]{[1]=parametr,[2]="tak",[3]="tak",}; end; parametr=mw.text.encode(parametr); return parametr; end; function p.DecodeWiki(parametr,czy_nie_odstepy) parametr=mw.text.decode(parametr); parametr=p["TransformacjaKoduHtmlDoZnakuCiągu"](parametr); parametr=p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr); if(not czy_nie_odstepy)then local parametry_modul=require("Module:Parametry"); parametr=parametry_modul["Odstępy"]{[1]=parametr,[2]="tak",}; end; return parametr; end; function p.IsEncodedHtml(parametr,encode,encode_real) local parametry_modul=require("Module:Parametry"); local spr_parametr_szereg=nil; local TempFunParametr=function(parametr) if(parametry_modul.TypeNil(spr_parametr_szereg))then local __spr_parametr_szereg=mw.ustring.match(parametr,"^[%w%p%s]*$"); spr_parametr_szereg=__spr_parametr_szereg and true or false; return spr_parametr_szereg; end; return spr_parametr_szereg; end; local spr_parametr_bez_procentu=nil; local TempFunBezProcentu=function(parametr) if(parametry_modul.TypeNil(spr_parametr_bez_procentu))then local __spr_parametr_bez_procentu=mw.ustring.match(parametr,"^[^%%]*$"); spr_parametr_bez_procentu=__spr_parametr_bez_procentu and true or false; return spr_parametr_bez_procentu; end; return spr_parametr_bez_procentu; end; local wynik=((encode_real)and(TempFunParametr(parametr)and(TempFunBezProcentu(parametr)))) or((encode)and(TempFunBezProcentu(parametr))) or(((not encode_real)or((encode_real)and(TempFunParametr(parametr)))) and(mw.ustring.match(parametr,"%%%x%x")) and(not mw.ustring.match(parametr,"%%$")) and(not mw.ustring.match(parametr,"%%.$")) and(not mw.ustring.match(parametr,"%%[^%x].")) and(not mw.ustring.match(parametr,"%%.[^%x]"))); return wynik and true or false; end; function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy) if(not parametr)then return;end; if(p.IsEncodedHtml(parametr,encode,encode_real))then return p.EncodeWiki(parametr,czy_nie_odstepy); end; return mw.uri.encode(parametr,"WIKI"); end; function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy) if(not parametr)then return;end; if(p.IsEncodedHtml(parametr,encode,encode_real))then if(spacje)then return p.DecodeWiki(mw.uri.decode(parametr,"WIKI")); else return p.EncodeWiki(mw.uri.decode(parametr,"WIKI")); end; end; if(spacje)then return p.DecodeWiki(parametr,czy_nie_odstepy); else return p.EncodeWiki(parametr,czy_nie_odstepy); end; end; function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik) znacznik=mw.ustring.gsub(znacznik,"([\"'])(.-[^\\])(%1)",function(cudzyslow_otwierajacy,atrybut,cudzyslow_zamykajacy) local ile1=0;local ile2; atrybut=p.KodowanieOmijanieFunkcyjne(atrybut,true,nil,function(atrybut) local __ile1; atrybut,__ile1=mw.ustring.gsub(atrybut,"([<>&])",function(a) return mw.text.encode(a); end); ile1=ile1+__ile1; return atrybut; end); atrybut,ile2=mw.ustring.gsub(atrybut,"(\\\")",function(a) return p["KodyHTMLZnakówWikiCiągu"](a); end); if(ile1+ile2>0)then return cudzyslow_otwierajacy..atrybut..cudzyslow_zamykajacy; end; return nil; end); return znacznik; end; function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value) value=mw.ustring.gsub(value,"(&)(%a+)(;)",function(amp,kod_html,srednik) kod_html=mw.ustring.lower(kod_html); if((kod_html=="lt")or(kod_html=="gt")or(kod_html=="amp"))then return mw.text.decode(amp..kod_html..srednik); end; return nil; end); local lewy_ukosnik=mw.ustring.byte("\\"); local cudzyslow=mw.ustring.byte("\""); value=mw.ustring.gsub(value,"(&#"..lewy_ukosnik..";&#"..cudzyslow..";)","\\\""); return value; end; p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_jednostki=PobierzParametr("nazwa jednostki") or PobierzParametr("strona") or PobierzParametr(1); czy_nie_dolne_myslniki=PobierzParametr("z nie dolnymi z myślnikami") or PobierzParametr(2) or czy_nie_dolne_myslniki; czy_nie_dolne_myslniki=parametry_modul.CzyTak(czy_nie_dolne_myslniki); if(not nazwa_jednostki)then return;end; nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.nazwa_jednostki or p.DecodeHtml(nazwa_jednostki,true); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.nazwa_jednostki))then tabela_nazw_adresu.nazwa_jednostki=nazwa_jednostki;end; local naglowek=czy_nie_dolne_myslniki and mw.ustring.match(nazwa_jednostki,"^[^#]*#[%s_]*(.-)[%s_]*$") or mw.ustring.match(nazwa_jednostki,"^[^#]*#(.-)%s*$"); naglowek=parametry_modul["Odstępy"]{[1]=naglowek,[2]="tak",[3]=((not czy_nie_dolne_myslniki)and "tak" or nil),}; return naglowek; end; p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_jednostki=PobierzParametr("nazwa jednostki") or PobierzParametr("strona") or PobierzParametr(1); czy_naprawiaj=PobierzParametr("czy naprawiać") or PobierzParametr(2) or czy_naprawiaj; czy_naprawiaj=parametry_modul.CzyTak(czy_naprawiaj); if(not nazwa_jednostki)then return;end; nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.nazwa_jednostki or p.DecodeHtml(nazwa_jednostki,true); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.nazwa_jednostki))then tabela_nazw_adresu.nazwa_jednostki=nazwa_jednostki;end; if(czy_naprawiaj)then local bez_naglowka=tabela_nazw_adresu and tabela_nazw_adresu.bez_naglowka or mw.ustring.gsub(nazwa_jednostki,"^[%s_]*([^#]-)[%s_]*#(.*)$","%1"); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.bez_naglowka))then tabela_nazw_adresu.bez_naglowka=bez_naglowka;end; local parametry=mw.ustring.match(bez_naglowka,"^.-%?*%?[%s_]*([^&]+=[^&]-.-)[%s_]*$"); if(parametry)then parametry=mw.ustring.gsub(parametry,"[%s_]*=[%s_]*","=") or nil; parametry=mw.ustring.gsub(parametry,"[%s_]*&[%s_]*","&") or nil; end; return parametry; else local bez_naglowka=tabela_nazw_adresu and tabela_nazw_adresu.bez_naglowka or mw.ustring.gsub(nazwa_jednostki,"^([^#]-)#(.*)$","%1"); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.bez_naglowka))then tabela_nazw_adresu.bez_naglowka=bez_naglowka;end; local parametry=mw.ustring.match(bez_naglowka,"^.-%?*%?([^&]+=[^&]-.-)%s*$"); return parametry; end; end; p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_jednostki=PobierzParametr("nazwa jednostki") or PobierzParametr("strona") or PobierzParametr(1); czy_naprawiaj=PobierzParametr("czy naprawiać") or PobierzParametr(2) or czy_naprawiaj; czy_naprawiaj=parametry_modul.CzyTak(czy_naprawiaj); if(not nazwa_jednostki)then return;end; nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.nazwa_jednostki or p.DecodeHtml(nazwa_jednostki,true); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.nazwa_jednostki))then tabela_nazw_adresu.nazwa_jednostki=nazwa_jednostki;end; if(czy_naprawiaj)then nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.bez_naglowka or mw.ustring.gsub(nazwa_jednostki,"^[%s_]*([^#]-)[%s_]*#(.*)$","%1"); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.bez_naglowka))then tabela_nazw_adresu.bez_naglowka=nazwa_jednostki;end; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.-%?*)[%s_]*%?[^&]+=[^&]*.*$","%1"); else nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.bez_naglowka or mw.ustring.gsub(nazwa_jednostki,"^([^#]-)#(.*)$","%1"); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.bez_naglowka))then tabela_nazw_adresu.bez_naglowka=nazwa_jednostki;end; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.-%?*)%?[^&]+=[^&]*.*$","%1"); end; local strony_modul=require("Module:Strony"); local czy_url=strony_modul.SprawdzanieURL(nazwa_jednostki); czy_url=czy_url and true or (not czy_naprawiaj); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",[3]=czy_url and true or false,}; return nazwa_jednostki; end; p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local parametry_strony=PobierzParametr("parametry") or PobierzParametr(1); czy_naprawiaj=PobierzParametr("czy naprawiać") or PobierzParametr(2) or czy_naprawiaj; czy_naprawiaj=parametry_modul.CzyTak(czy_naprawiaj); if(parametry_modul.CzyTak(parametry_strony))then local nazwa_strony_linku; if(czy_naprawiaj)then if(mw.ustring.match(parametry_strony,"^[%s_]*title[%s_]*=[^&]*"))then nazwa_strony_linku=mw.ustring.match(parametry_strony,"^[%s_]*title[%s_]*=([^&]+)&?.*$"); parametry_strony=mw.ustring.gsub(parametry_strony,"^[%s_]*title[%s_]*=([^&]+)&?",""); elseif(mw.ustring.match(parametry_strony,"&[%s_]*title[%s_]*=[^&]*"))then nazwa_strony_linku=mw.ustring.match(parametry_strony,"&[%s_]*title[%s_]*=([^&]+)&?.*$"); parametry_strony=mw.ustring.gsub(parametry_strony,"&[%s_]*title[%s_]*=([^&]+).*$",""); end; else if(mw.ustring.match(parametry_strony,"^title=[^&]*"))then nazwa_strony_linku=mw.ustring.match(parametry_strony,"^title=([^&]+)&?.*$"); parametry_strony=mw.ustring.gsub(parametry_strony,"^title=([^&]+)&?",""); elseif(mw.ustring.match(parametry_strony,"&title=[^&]*"))then nazwa_strony_linku=mw.ustring.match(parametry_strony,"&title=([^&]+)&?.*$"); parametry_strony=mw.ustring.gsub(parametry_strony,"&title=([^&]+).*$",""); end; end; nazwa_strony_linku=parametry_modul["Odstępy"]{[1]=nazwa_strony_linku,[2]="tak",[3]=(not czy_naprawiaj),}; return nazwa_strony_linku,parametry_strony; else return nil; end; end; p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_jednostki=PobierzParametr("nazwa jednostki") or PobierzParametr("strona") or PobierzParametr(1); czy_naprawiaj=PobierzParametr("czy naprawiać") or PobierzParametr(2) or czy_naprawiaj; czy_naprawiaj=parametry_modul.CzyTak(czy_naprawiaj); local tabela_nazw_adresu=tabela_nazw_adresu or {}; local adres=p["NazwaStronyAdresu"](nazwa_jednostki,(czy_naprawiaj)and true or nil,tabela_nazw_adresu); local parametry_strony=p["ParametryStronyAdresu"](nazwa_jednostki,(czy_naprawiaj)and true or nil,tabela_nazw_adresu); local naglowek_strony=p["NagłówekStronyAdresu"](nazwa_jednostki,(czy_naprawiaj)and true or nil,tabela_nazw_adresu); nazwa_jednostki=adres..(parametry_strony and ("?"..parametry_strony) or "")..(naglowek_strony and ("#"..naglowek_strony) or ""); return nazwa_jednostki; end; function p.URLStrona(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local url=PobierzParametr("url") or PobierzParametr(1); local z_ukosnikiem=parametry_modul.CzyTak(PobierzParametr("ukośnik") or PobierzParametr(2)); local serwer,nazwa=mw.ustring.match(url,"^//+([^%s/]+)"..((z_ukosnikiem) and "/+" or "").."(/?.-)$"); return serwer,nazwa; end; p["UrlBezProtokołu"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local url=PobierzParametr("url") or PobierzParametr(1); local mail=mw.ustring.match(url,"^.*@([^@]+)$"); if(mail)then return "//"..mail,"mail",1; end; local protokol,strona=mw.ustring.match(url,"^(%a+:)(/+.-)$"); if((protokol)and(strona))then strona=mw.ustring.gsub(strona,"^(/+)","//"); return strona,protokol,2; end; local strona=mw.ustring.match(url,"^:?(/+.-)$"); if(strona)then strona=mw.ustring.gsub(strona,"^(/+)","//"); return strona,nil,3; end; return "//"..url,nil,-1; end; function p.DecodeKoduHTMLZnaku(tekst) local html_dane_modul=mw.loadData("Module:Html/dane"); local kody_literowe_html_i_ich_odpowiedniki_znakowe=html_dane_modul.kody_literowe_html_i_ich_odpowiedniki_znakowe; -- najpierw nazwane encje local ile1; tekst,ile1 = mw.ustring.gsub(tekst,"(&%a+%;)", kody_literowe_html_i_ich_odpowiedniki_znakowe); -- encje numeryczne dziesiętne: &#956; local ile2; tekst,ile2=mw.ustring.gsub(tekst,"&#(%d+);", function(n) return mw.ustring.char(tonumber(n)) end); -- encje numeryczne szesnastkowe: &#x3BC; local ile3; tekst,ile3 = mw.ustring.gsub(tekst,"&#x(%x+);", function(n) return mw.ustring.char(tonumber(n, 16)) end); return tekst,ile1,ile2,ile3; end; function p.ZamianaEncodeTekst(tekst) tekst=mw.uri.encode(mw.uri.decode(tekst,"PATH"),"PATH"); return tekst; end; function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor,funkcja) tekst=mw.ustring.gsub(tekst,wzor,function(tekst) tekst=funkcja(tekst); return tekst; end); return tekst; end; function p.StronaParametryIdentyfikacjaAdresuHtml(adres) local ile_w;local ile; adres,ile_w,ile=p.EncodeHashKoduHtmlTekstu(adres); local ile1;local ile2; if(ile_w>0)then adres,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(adres); end; local strona,naglowek=mw.ustring.match(adres,"^[%s_]*([^#]-)[%s_]*#[%s_]*(.-)[%s_]*$"); if((not strona)or(not naglowek))then strona=mw.ustring.match(adres,"^[%s_]*(.-)[%s_]*$"); end; local __strona,parametry=mw.ustring.match(strona,"^(.-%?*)%?([^&=]-=.*)$"); strona=__strona or strona; if(ile_w>0)then strona=p.DecodeHashKoduHtmlTekstu(p.DecodeTempHashKoduHtmlTekstu(strona,ile1,ile2),ile); parametry=parametry and p.DecodeHashKoduHtmlTekstu(p.DecodeTempHashKoduHtmlTekstu(parametry,ile1,ile2),ile) or nil; naglowek=naglowek and p.DecodeHashKoduHtmlTekstu(p.DecodeTempHashKoduHtmlTekstu(naglowek,ile1,ile2),ile) or nil; end; return strona,parametry,naglowek; end; function p.TworzenieAdresuHtml(strona,parametry,naglowek) local adres=strona..(parametry and ("?"..parametry) or "")..((naglowek)and ("#"..naglowek) or ""); return adres; end; function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek,funkcja_operacji) local strona,parametry,naglowek=p.StronaParametryIdentyfikacjaAdresuHtml(adres); strona=funkcja_strona and funkcja_strona(strona,funkcja_operacji and funkcja_operacji[1] or nil) or strona; parametry=(parametry and funkcja_parametry) and funkcja_parametry(parametry,funkcja_operacji and funkcja_operacji[2] or nil) or parametry; naglowek=(naglowek and funkcja_naglowek) and funkcja_naglowek(naglowek,funkcja_operacji and funkcja_operacji[3] or nil) or naglowek; local adres=p.TworzenieAdresuHtml(strona,parametry,naglowek); return adres; end; function p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek) local function ParametryEncodeURL(a,b,c,funkcja_operacji) return a..funkcja_operacji(b).."="..funkcja_operacji(c); end; local function OperacjeHtml(adres,funkcja_operacji) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",function(a,b,c)return ParametryEncodeURL(a,b,c,funkcja_operacji);end); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",function(a,b,c)return ParametryEncodeURL(a,b,c,funkcja_operacji);end); return adres; end; local funkcja_operacji={ [1]=function(tekst) return p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,"[^/]+",p.ZamianaEncodeTekst); end, [2]=function(tekst) return p.ZamianaEncodeTekst(tekst); end, [3]=function(tekst) return p.ZamianaEncodeTekst(tekst); end, }; if(not w_adresie)then return OperacjeHtml(adres,funkcja_operacji[2]); else return p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,OperacjeHtml,funkcja_naglowek,funkcja_operacji); end; end; function p.ParametryZaawansowanyEncodeURL(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek) local KrokParametryZaawansowanyEncodeURLABC=function(a) a=mw.uri.decode(a,"PATH"); a=p.EncodeSpecjalneZnakiHtml(a,true); if(z_kodowaniem)then a=mw.uri.encode(a,"PATH");end; return a; end; function ParametryZaawansowanyEncodeURL(a,b,c,funkcja_operacji) b=mw.uri.decode(b,"PATH");b=funkcja_operacji(b,true);b=mw.uri.encode(b,"PATH"); c=mw.uri.decode(c,"PATH");c=funkcja_operacji(c,true);c=mw.uri.encode(c,"PATH"); return a..(b.."="..c); end; local function OperacjeURL(adres,funkcja_operacji) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",function(a,b,c)return ParametryZaawansowanyEncodeURL(a,b,c,funkcja_operacji);end); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",function(a,b,c)return ParametryZaawansowanyEncodeURL(a,b,c,funkcja_operacji);end); return adres; end; local funkcja_operacji={ [1]=function(tekst) return p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,"[^/]+",KrokParametryZaawansowanyEncodeURLABC); end, [2]=function(tekst) return KrokParametryZaawansowanyEncodeURLABC(tekst); end, [3]=function(tekst) return KrokParametryZaawansowanyEncodeURLABC(tekst); end, }; if(not w_adresie)then return OperacjeURL(adres,funkcja_operacji[2]); else return p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,OperacjeURL,funkcja_naglowek,funkcja_operacji); end; end; function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek) local EncodeHtmlAB=function(a,b,c,funkcja_operacji) b=funkcja_operacji(b);c=funkcja_operacji(c); return a..b.."="..c; end; local function ParametryHtml(parametr,funkcja_operacji) parametr=mw.ustring.gsub(parametr,"^(%??)([^&=]*)=([^&]*)",function(a,b,c)return EncodeHtmlAB(a,b,c,funkcja_operacji);end); parametr=mw.ustring.gsub(parametr,"(&)([^&=]*)=([^&]*)",function(a,b,c)return EncodeHtmlAB(a,b,c,funkcja_operacji);end); return parametr; end; local funkcja_operacji={ [1]=function(tekst) return p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,"[^/]+",p.EncodeHtml); end, [2]=function(tekst) return p.EncodeHtml(tekst); end, [3]=function(tekst) return p.EncodeHtml(tekst); end, }; if(not w_adresie)then return ParametryHtml(parametr,funkcja_operacji[2]); else return p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(parametr,funkcja_strona,ParametryHtml,funkcja_naglowek,funkcja_operacji); end; end; function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek) local KrokEncodeZaawansowanyParametryHtmlABC=function(a) a=mw.uri.decode(a,"PATH"); a=p.EncodePodstawoweHtmlTekstu(a); if(z_kodowaniem)then a=mw.uri.encode(a,"PATH");end; return a; end; local EncodeZaawansowanyParametryHtmlABC=function(a,b,c,funkcja_operacji) b=funkcja_operacji(b); c=funkcja_operacji(c); return (a or "")..(b.."="..c); end; local function OperacjeParametryHtmlABC(adres,funkcja_operacji) adres=mw.ustring.gsub(adres,"^(%??)([^&=]-)=([^&]*)",function(a,b,c)return EncodeZaawansowanyParametryHtmlABC(a,b,c,funkcja_operacji);end); adres=mw.ustring.gsub(adres,"([&])([^&=]-)=([^&]*)",function(a,b,c)return EncodeZaawansowanyParametryHtmlABC(a,b,c,funkcja_operacji);end); return adres; end; local funkcja_operacji={ [1]=function(tekst) return p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,"[^/]+",KrokEncodeZaawansowanyParametryHtmlABC); end, [2]=function(tekst) return KrokEncodeZaawansowanyParametryHtmlABC(tekst); end, [3]=function(tekst) return KrokEncodeZaawansowanyParametryHtmlABC(tekst); end, }; if(not w_adresie)then return OperacjeParametryHtmlABC(adres,funkcja_operacji[2]); else return p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,OperacjeParametryHtmlABC,funkcja_naglowek,funkcja_operacji); end; end; function p.EncodeHashKoduHtmlTekstu(tekst) local ile;local ile2=0; tekst,ile=mw.ustring.gsub(tekst,"&([^&;%s]+);",function(kod) if((kod=="num")or(kod=="#35")or(kod=="#x23"))then ile2=ile2+1; return "&amp;num;"; end; return nil; end); return tekst,ile,ile2; end; function p.DecodeHashKoduHtmlTekstu(tekst,ile) if(((ile)and(ile>0))or(not ile))then tekst=mw.ustring.gsub(tekst,"&amp;num;",function(kod) return "&#35;"; end); end; return tekst; end; function p.EncodeTempHashKoduHtmlTekstu(tekst) local ile1;local ile2; tekst,ile1=mw.ustring.gsub(tekst,"&#(%d+);",function(kod) return "&&num;"..kod..";"; end); tekst,ile2=mw.ustring.gsub(tekst,"&#x(%x+);",function(kod) return "&&num;x"..kod..";"; end); return tekst,ile1,ile2; end; function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2) if(((ile1)and(ile1>0))or(not ile1))then tekst=mw.ustring.gsub(tekst,"&&num;(%d+);",function(kod) return "&#"..kod..";" end); end; if(((ile2)and(ile2>0))or(not ile2))then tekst=mw.ustring.gsub(tekst,"&&num;x(%x+);",function(kod) return "&#x"..kod..";" end); end; return tekst; end; function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny) local adres=p.ParametryEncodeURL(adres,true, function(strona,Func) if(protokolarny)then local adres,protokol=p["UrlBezProtokołu"](strona); adres=Func(adres); adres=(protokol or "")..adres; return adres; else return Func(strona); end; end, function(naglowek,Func) naglowek=Func(naglowek); return naglowek; end); return adres; end; function p.UriEncode(frame) local parametry_modul=require("Module:Parametry"); local html=parametry_modul.PobierzParametryRamki(frame)("html"); html=mw.ustring.gsub(html,"^(%a+://)(.+)$",function(prot,strona) return prot..p.AdresDomniemanieBezProtokolarnyEncodeURL(strona,false); end); return html; end; function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony) elementy_adresu_strony=p.KodowanieOmijanieFunkcyjne(elementy_adresu_strony,true,"&(#35);",function(elementy_adresu_strony) elementy_adresu_strony=p.DecodeKoduHTMLZnaku(elementy_adresu_strony); return elementy_adresu_strony; end); elementy_adresu_strony=p.EncodeSpecjalneZnakiHtml(elementy_adresu_strony,true); return elementy_adresu_strony; end; function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem) if(czy_parametry_strony)then elementy_adresu_strony=p.EncodeZaawansowanyParametryHtml(elementy_adresu_strony,z_kodowaniem); else elementy_adresu_strony=mw.uri.decode(elementy_adresu_strony,"PATH"); elementy_adresu_strony=p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony); if(z_kodowaniem)then elementy_adresu_strony=mw.uri.encode(elementy_adresu_strony,"PATH");end; end; return elementy_adresu_strony; end; function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny) local parametry_modul=require("Module:Parametry") local PobierzParametry=parametry_modul.PobierzParametryRamki(frame); local html=PobierzParametry("html"); local z_kodowaniem_html=PobierzParametry("encode"); if(z_kodowaniem_html)then z_kodowaniem=parametry_modul.CzyTak(z_kodowaniem_html);end; local html=p.EncodeZaawansowanyParametryHtml(html,z_kodowaniem,true, function(strona,Func) if(protokolarny)then local adres,protokol=p["UrlBezProtokołu"](strona); adres=Func(adres); adres=(protokol or "")..adres; return adres; else return Func(strona); end; end, function(naglowek,Func) naglowek=Func(naglowek); return naglowek; end); return html; end; return p; 9yebmyp883gq8drwhqfbv2k8w3y1qrd 553336 553335 2026-08-27T16:15:22Z Persino 2851 553336 Scribunto text/plain local p={}; function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja) local szeregi_modul=require("Module:Szeregi"); wzor=wzor or "&([^&;%s]+);" html=szeregi_modul.SzeregiOmijanieFunkcyjne(html,normalnie,wzor,funkcja, function(kod) return "&"..kod..";"; end); return html; end; p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); tekst=mw.ustring.gsub(tekst,"([%|%[%]%(%)%+%-%*%?%.%^%$%%'])",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) return tekst; end; p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); tekst=mw.ustring.gsub(tekst,"&#(%d+);",function (s) return tostring(mw.ustring.char(s));end); tekst=mw.ustring.gsub(tekst,"&#x(%x+);", function(n) return mw.ustring.char(tonumber(n, 16));end); return tekst; end; function p.ZnakiSpecjalneTaguNowiki(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_nawiasy=html_dane_modul.tabela_nawiasowa; tekst=mw.ustring.gsub(tekst,"([%!{}|=<>%[%]])",tab_nawiasy); return tekst; end; function p.ZnakiSpecjalneWikiLinku(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_nawiasy=html_dane_modul.tabela_nawiasowa; tekst=mw.ustring.gsub(tekst,"([{}|<>%[%]])",tab_nawiasy); return tekst; end; function p.EncodeSpecjalneZnakiHtml(frame,normalnie) local parametry_modul=require("Module:Parametry"); local PobierzParametryRamki=parametry_modul.PobierzParametryRamki(frame); local html=PobierzParametryRamki("html"); local __normalnie=PobierzParametryRamki("normalnie"); normalnie=parametry_modul.CzyTak(__normalnie) or normalnie; --- local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_nawiasy=html_dane_modul.tabela_nawiasowa; local wzor_kody="([{}|<>%[%]#=%?&])"; html=p.KodowanieOmijanieFunkcyjne(html,normalnie,nil,function(ciag) ciag=mw.ustring.gsub(ciag,wzor_kody,tab_nawiasy); return ciag; end); return html; end; function p.EncodeZnakProloguList(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_nawiasy=html_dane_modul.tabela_nawiasowa; local lista_znaki="%#%*%;%:"; tekst=mw.ustring.gsub(tekst,"^\n?(["..lista_znaki.."])",tab_nawiasy); tekst=mw.ustring.gsub(tekst,"\n(["..lista_znaki.."])",function(znak) return "\n"..(tab_nawiasy[znak] or znak); end); return tekst; end; function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie) local parametry_modul=require("Module:Parametry"); local PobierzParametryRamki=parametry_modul.PobierzParametryRamki(frame); local tekst=PobierzParametryRamki("tekst"); local __normalnie=PobierzParametryRamki("normalnie"); normalnie=parametry_modul.CzyTak(__normalnie) or normalnie; --- local html_dane_modul=mw.loadData("Module:Html/dane"); local tabela_nawiasowa=html_dane_modul.tabela_nawiasowa; tekst=p.KodowanieOmijanieFunkcyjne(tekst,normalnie,nil,function(ciag) ciag=mw.ustring.gsub(ciag,"([=%?&])",tabela_nawiasowa); return ciag; end); return tekst; end; function p.PrzypisanieZnakoweEncodeHtml(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tabela_nawiasowa=html_dane_modul.tabela_nawiasowa; tekst=mw.ustring.gsub(tekst,"([=])",tabela_nawiasowa); return tekst; end; function p.ZamianaDwukropkaNaKodHtml(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tabela_nawiasowa=html_dane_modul.tabela_nawiasowa; tekst=mw.ustring.gsub(tekst,"([:])",tabela_nawiasowa); return tekst; end; function p.KodHTMLZnaku(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local znak=PobierzParametr(1); if(not parametry_modul.CzyTak(znak))then return "(błąd)";end; local czy_kod_znaku=PobierzParametr(2); local czy_tak=parametry_modul["CzyTakCiąg"](czy_kod_znaku); local ZnakFun=function(znak) if(#znak>1)then return mw.ustring.codepoint(znak); else return mw.ustring.byte(znak); end; end; if(czy_tak)then return "&amp;&num;"..tostring(ZnakFun(znak))..";"; else return "&#"..tostring(ZnakFun(znak))..";"; end; end; p["KodyHTMLZnakówWikiCiągu"] = function (frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local ciag_znakow=PobierzParametr(1); if(not parametry_modul.CzyTak(ciag_znakow))then return "(błąd)";end; local czy_kod_znaku=PobierzParametr(2); local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_znakowo_kodowa={}; local tabela_znakowa=html_dane_modul.tabela_znakowa; local ciag,_=mw.ustring.gsub(ciag_znakow,"(.)",function(znak) if(tabela_znakowa[znak])then if(not czy_kod_znaku)then return "&#"..tabela_znakowa[znak]..";"; else return "&amp;&num;"..tabela_znakowa[znak]..";"; end; end; return nil; end); return ciag; end; function p.EncodeId(id,bez_transformacji) id=(not bez_transformacji) and p.DecodeHtml(id,true) or id; local id=p.EncodeSpecjalneZnakiHtml(id,true); return id; end; function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr) parametr=mw.ustring.gsub(parametr,"‎",""); return parametr; end; function p.EncodeWiki(parametr,czy_nie_odstepy) parametr=p["TransformacjaKoduHtmlDoZnakuCiągu"](parametr); parametr=p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr); local parametry_modul=require("Module:Parametry"); if(not czy_nie_odstepy)then parametr=parametry_modul["Odstępy"]{[1]=parametr,[2]="tak",[3]="tak",}; end; parametr=mw.text.encode(parametr); return parametr; end; function p.DecodeWiki(parametr,czy_nie_odstepy) parametr=mw.text.decode(parametr); parametr=p["TransformacjaKoduHtmlDoZnakuCiągu"](parametr); parametr=p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr); if(not czy_nie_odstepy)then local parametry_modul=require("Module:Parametry"); parametr=parametry_modul["Odstępy"]{[1]=parametr,[2]="tak",}; end; return parametr; end; function p.IsEncodedHtml(parametr,encode,encode_real) local parametry_modul=require("Module:Parametry"); local spr_parametr_szereg=nil; local TempFunParametr=function(parametr) if(parametry_modul.TypeNil(spr_parametr_szereg))then local __spr_parametr_szereg=mw.ustring.match(parametr,"^[%w%p%s]*$"); spr_parametr_szereg=__spr_parametr_szereg and true or false; return spr_parametr_szereg; end; return spr_parametr_szereg; end; local spr_parametr_bez_procentu=nil; local TempFunBezProcentu=function(parametr) if(parametry_modul.TypeNil(spr_parametr_bez_procentu))then local __spr_parametr_bez_procentu=mw.ustring.match(parametr,"^[^%%]*$"); spr_parametr_bez_procentu=__spr_parametr_bez_procentu and true or false; return spr_parametr_bez_procentu; end; return spr_parametr_bez_procentu; end; local wynik=((encode_real)and(TempFunParametr(parametr)and(TempFunBezProcentu(parametr)))) or((encode)and(TempFunBezProcentu(parametr))) or(((not encode_real)or((encode_real)and(TempFunParametr(parametr)))) and(mw.ustring.match(parametr,"%%%x%x")) and(not mw.ustring.match(parametr,"%%$")) and(not mw.ustring.match(parametr,"%%.$")) and(not mw.ustring.match(parametr,"%%[^%x].")) and(not mw.ustring.match(parametr,"%%.[^%x]"))); return wynik and true or false; end; function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy) if(not parametr)then return;end; if(p.IsEncodedHtml(parametr,encode,encode_real))then return p.EncodeWiki(parametr,czy_nie_odstepy); end; return mw.uri.encode(parametr,"WIKI"); end; function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy) if(not parametr)then return;end; if(p.IsEncodedHtml(parametr,encode,encode_real))then if(spacje)then return p.DecodeWiki(mw.uri.decode(parametr,"WIKI")); else return p.EncodeWiki(mw.uri.decode(parametr,"WIKI")); end; end; if(spacje)then return p.DecodeWiki(parametr,czy_nie_odstepy); else return p.EncodeWiki(parametr,czy_nie_odstepy); end; end; function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik) znacznik=mw.ustring.gsub(znacznik,"([\"'])(.-[^\\])(%1)",function(cudzyslow_otwierajacy,atrybut,cudzyslow_zamykajacy) local ile1=0;local ile2; atrybut=p.KodowanieOmijanieFunkcyjne(atrybut,true,nil,function(atrybut) local __ile1; atrybut,__ile1=mw.ustring.gsub(atrybut,"([<>&])",function(a) return mw.text.encode(a); end); ile1=ile1+__ile1; return atrybut; end); atrybut,ile2=mw.ustring.gsub(atrybut,"(\\\")",function(a) return p["KodyHTMLZnakówWikiCiągu"](a); end); if(ile1+ile2>0)then return cudzyslow_otwierajacy..atrybut..cudzyslow_zamykajacy; end; return nil; end); return znacznik; end; function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value) value=mw.ustring.gsub(value,"(&)(%a+)(;)",function(amp,kod_html,srednik) kod_html=mw.ustring.lower(kod_html); if((kod_html=="lt")or(kod_html=="gt")or(kod_html=="amp"))then return mw.text.decode(amp..kod_html..srednik); end; return nil; end); local lewy_ukosnik=mw.ustring.byte("\\"); local cudzyslow=mw.ustring.byte("\""); value=mw.ustring.gsub(value,"(&#"..lewy_ukosnik..";&#"..cudzyslow..";)","\\\""); return value; end; p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_jednostki=PobierzParametr("nazwa jednostki") or PobierzParametr("strona") or PobierzParametr(1); czy_nie_dolne_myslniki=PobierzParametr("z nie dolnymi z myślnikami") or PobierzParametr(2) or czy_nie_dolne_myslniki; czy_nie_dolne_myslniki=parametry_modul.CzyTak(czy_nie_dolne_myslniki); if(not nazwa_jednostki)then return;end; nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.nazwa_jednostki or p.DecodeHtml(nazwa_jednostki,true); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.nazwa_jednostki))then tabela_nazw_adresu.nazwa_jednostki=nazwa_jednostki;end; local naglowek=czy_nie_dolne_myslniki and mw.ustring.match(nazwa_jednostki,"^[^#]*#[%s_]*(.-)[%s_]*$") or mw.ustring.match(nazwa_jednostki,"^[^#]*#(.-)%s*$"); naglowek=parametry_modul["Odstępy"]{[1]=naglowek,[2]="tak",[3]=((not czy_nie_dolne_myslniki)and "tak" or nil),}; return naglowek; end; p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_jednostki=PobierzParametr("nazwa jednostki") or PobierzParametr("strona") or PobierzParametr(1); czy_naprawiaj=PobierzParametr("czy naprawiać") or PobierzParametr(2) or czy_naprawiaj; czy_naprawiaj=parametry_modul.CzyTak(czy_naprawiaj); if(not nazwa_jednostki)then return;end; nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.nazwa_jednostki or p.DecodeHtml(nazwa_jednostki,true); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.nazwa_jednostki))then tabela_nazw_adresu.nazwa_jednostki=nazwa_jednostki;end; if(czy_naprawiaj)then local bez_naglowka=tabela_nazw_adresu and tabela_nazw_adresu.bez_naglowka or mw.ustring.gsub(nazwa_jednostki,"^[%s_]*([^#]-)[%s_]*#(.*)$","%1"); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.bez_naglowka))then tabela_nazw_adresu.bez_naglowka=bez_naglowka;end; local parametry=mw.ustring.match(bez_naglowka,"^.-%?*%?[%s_]*([^&]+=[^&]-.-)[%s_]*$"); if(parametry)then parametry=mw.ustring.gsub(parametry,"[%s_]*=[%s_]*","=") or nil; parametry=mw.ustring.gsub(parametry,"[%s_]*&[%s_]*","&") or nil; end; return parametry; else local bez_naglowka=tabela_nazw_adresu and tabela_nazw_adresu.bez_naglowka or mw.ustring.gsub(nazwa_jednostki,"^([^#]-)#(.*)$","%1"); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.bez_naglowka))then tabela_nazw_adresu.bez_naglowka=bez_naglowka;end; local parametry=mw.ustring.match(bez_naglowka,"^.-%?*%?([^&]+=[^&]-.-)%s*$"); return parametry; end; end; p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_jednostki=PobierzParametr("nazwa jednostki") or PobierzParametr("strona") or PobierzParametr(1); czy_naprawiaj=PobierzParametr("czy naprawiać") or PobierzParametr(2) or czy_naprawiaj; czy_naprawiaj=parametry_modul.CzyTak(czy_naprawiaj); if(not nazwa_jednostki)then return;end; nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.nazwa_jednostki or p.DecodeHtml(nazwa_jednostki,true); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.nazwa_jednostki))then tabela_nazw_adresu.nazwa_jednostki=nazwa_jednostki;end; if(czy_naprawiaj)then nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.bez_naglowka or mw.ustring.gsub(nazwa_jednostki,"^[%s_]*([^#]-)[%s_]*#(.*)$","%1"); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.bez_naglowka))then tabela_nazw_adresu.bez_naglowka=nazwa_jednostki;end; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.-%?*)[%s_]*%?[^&]+=[^&]*.*$","%1"); else nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.bez_naglowka or mw.ustring.gsub(nazwa_jednostki,"^([^#]-)#(.*)$","%1"); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.bez_naglowka))then tabela_nazw_adresu.bez_naglowka=nazwa_jednostki;end; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.-%?*)%?[^&]+=[^&]*.*$","%1"); end; local strony_modul=require("Module:Strony"); local czy_url=strony_modul.SprawdzanieURL(nazwa_jednostki); czy_url=czy_url and true or (not czy_naprawiaj); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",[3]=czy_url and true or false,}; return nazwa_jednostki; end; p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local parametry_strony=PobierzParametr("parametry") or PobierzParametr(1); czy_naprawiaj=PobierzParametr("czy naprawiać") or PobierzParametr(2) or czy_naprawiaj; czy_naprawiaj=parametry_modul.CzyTak(czy_naprawiaj); if(parametry_modul.CzyTak(parametry_strony))then local nazwa_strony_linku; if(czy_naprawiaj)then if(mw.ustring.match(parametry_strony,"^[%s_]*title[%s_]*=[^&]*"))then nazwa_strony_linku=mw.ustring.match(parametry_strony,"^[%s_]*title[%s_]*=([^&]+)&?.*$"); parametry_strony=mw.ustring.gsub(parametry_strony,"^[%s_]*title[%s_]*=([^&]+)&?",""); elseif(mw.ustring.match(parametry_strony,"&[%s_]*title[%s_]*=[^&]*"))then nazwa_strony_linku=mw.ustring.match(parametry_strony,"&[%s_]*title[%s_]*=([^&]+)&?.*$"); parametry_strony=mw.ustring.gsub(parametry_strony,"&[%s_]*title[%s_]*=([^&]+).*$",""); end; else if(mw.ustring.match(parametry_strony,"^title=[^&]*"))then nazwa_strony_linku=mw.ustring.match(parametry_strony,"^title=([^&]+)&?.*$"); parametry_strony=mw.ustring.gsub(parametry_strony,"^title=([^&]+)&?",""); elseif(mw.ustring.match(parametry_strony,"&title=[^&]*"))then nazwa_strony_linku=mw.ustring.match(parametry_strony,"&title=([^&]+)&?.*$"); parametry_strony=mw.ustring.gsub(parametry_strony,"&title=([^&]+).*$",""); end; end; nazwa_strony_linku=parametry_modul["Odstępy"]{[1]=nazwa_strony_linku,[2]="tak",[3]=(not czy_naprawiaj),}; return nazwa_strony_linku,parametry_strony; else return nil; end; end; p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_jednostki=PobierzParametr("nazwa jednostki") or PobierzParametr("strona") or PobierzParametr(1); czy_naprawiaj=PobierzParametr("czy naprawiać") or PobierzParametr(2) or czy_naprawiaj; czy_naprawiaj=parametry_modul.CzyTak(czy_naprawiaj); local tabela_nazw_adresu=tabela_nazw_adresu or {}; local adres=p["NazwaStronyAdresu"](nazwa_jednostki,(czy_naprawiaj)and true or nil,tabela_nazw_adresu); local parametry_strony=p["ParametryStronyAdresu"](nazwa_jednostki,(czy_naprawiaj)and true or nil,tabela_nazw_adresu); local naglowek_strony=p["NagłówekStronyAdresu"](nazwa_jednostki,(czy_naprawiaj)and true or nil,tabela_nazw_adresu); nazwa_jednostki=adres..(parametry_strony and ("?"..parametry_strony) or "")..(naglowek_strony and ("#"..naglowek_strony) or ""); return nazwa_jednostki; end; function p.URLStrona(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local url=PobierzParametr("url") or PobierzParametr(1); local z_ukosnikiem=parametry_modul.CzyTak(PobierzParametr("ukośnik") or PobierzParametr(2)); local serwer,nazwa=mw.ustring.match(url,"^//+([^%s/]+)"..((z_ukosnikiem) and "/+" or "").."(/?.-)$"); return serwer,nazwa; end; p["UrlBezProtokołu"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local url=PobierzParametr("url") or PobierzParametr(1); local mail=mw.ustring.match(url,"^.*@([^@]+)$"); if(mail)then return "//"..mail,"mail",1; end; local protokol,strona=mw.ustring.match(url,"^(%a+:)(/+.-)$"); if((protokol)and(strona))then strona=mw.ustring.gsub(strona,"^(/+)","//"); return strona,protokol,2; end; local strona=mw.ustring.match(url,"^:?(/+.-)$"); if(strona)then strona=mw.ustring.gsub(strona,"^(/+)","//"); return strona,nil,3; end; return "//"..url,nil,-1; end; function p.DecodeKoduHTMLZnaku(tekst) local html_dane_modul=mw.loadData("Module:Html/dane"); local kody_literowe_html_i_ich_odpowiedniki_znakowe=html_dane_modul.kody_literowe_html_i_ich_odpowiedniki_znakowe; -- najpierw nazwane encje local ile1; tekst,ile1 = mw.ustring.gsub(tekst,"(&%a+%;)", kody_literowe_html_i_ich_odpowiedniki_znakowe); -- encje numeryczne dziesiętne: &#956; local ile2; tekst,ile2=mw.ustring.gsub(tekst,"&#(%d+);", function(n) return mw.ustring.char(tonumber(n)) end); -- encje numeryczne szesnastkowe: &#x3BC; local ile3; tekst,ile3 = mw.ustring.gsub(tekst,"&#x(%x+);", function(n) return mw.ustring.char(tonumber(n, 16)) end); return tekst,ile1,ile2,ile3; end; function p.ZamianaEncodeTekst(tekst) tekst=mw.uri.encode(mw.uri.decode(tekst,"PATH"),"PATH"); return tekst; end; function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor,funkcja) tekst=mw.ustring.gsub(tekst,wzor,function(tekst) tekst=funkcja(tekst); return tekst; end); return tekst; end; function p.StronaParametryIdentyfikacjaAdresuHtml(adres) local ile_w;local ile; adres,ile_w,ile=p.EncodeHashKoduHtmlTekstu(adres); local ile1;local ile2; if(ile_w>0)then adres,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(adres); end; local strona,naglowek=mw.ustring.match(adres,"^[%s_]*([^#]-)[%s_]*#[%s_]*(.-)[%s_]*$"); if((not strona)or(not naglowek))then strona=mw.ustring.match(adres,"^[%s_]*(.-)[%s_]*$"); end; local __strona,parametry=mw.ustring.match(strona,"^(.-%?*)%?([^&=]-=.*)$"); strona=__strona or strona; if(ile_w>0)then strona=p.DecodeHashKoduHtmlTekstu(p.DecodeTempHashKoduHtmlTekstu(strona,ile1,ile2),ile); parametry=parametry and p.DecodeHashKoduHtmlTekstu(p.DecodeTempHashKoduHtmlTekstu(parametry,ile1,ile2),ile) or nil; naglowek=naglowek and p.DecodeHashKoduHtmlTekstu(p.DecodeTempHashKoduHtmlTekstu(naglowek,ile1,ile2),ile) or nil; end; return strona,parametry,naglowek; end; function p.TworzenieAdresuHtml(strona,parametry,naglowek) local adres=strona..(parametry and ("?"..parametry) or "")..((naglowek)and ("#"..naglowek) or ""); return adres; end; function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek,funkcja_operacji) local SprawdzanieFuncTekst=function(tekst) local spacja=" _\t";local interpunkcja="%,%.%:%?%!%(%)%;";local adres="%\\%/"; local regex="^[%a%d"..spacja..interpunkcja..adres.."]*$"; return mw.ustring.match(tekst,regex); end; local czy_adres=SprawdzanieFuncTekst(adres); if(czy_adres)then return adres;end; local strona,parametry,naglowek=p.StronaParametryIdentyfikacjaAdresuHtml(adres); strona=funkcja_strona and funkcja_strona(strona,funkcja_operacji and funkcja_operacji[1] or nil) or strona; parametry=(parametry and funkcja_parametry) and funkcja_parametry(parametry,funkcja_operacji and funkcja_operacji[2] or nil) or parametry; naglowek=(naglowek and funkcja_naglowek) and funkcja_naglowek(naglowek,funkcja_operacji and funkcja_operacji[3] or nil) or naglowek; local adres=p.TworzenieAdresuHtml(strona,parametry,naglowek); return adres; end; function p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek) local function ParametryEncodeURL(a,b,c,funkcja_operacji) return a..funkcja_operacji(b).."="..funkcja_operacji(c); end; local function OperacjeHtml(adres,funkcja_operacji) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",function(a,b,c)return ParametryEncodeURL(a,b,c,funkcja_operacji);end); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",function(a,b,c)return ParametryEncodeURL(a,b,c,funkcja_operacji);end); return adres; end; local funkcja_operacji={ [1]=function(tekst) return p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,"[^/]+",p.ZamianaEncodeTekst); end, [2]=function(tekst) return p.ZamianaEncodeTekst(tekst); end, [3]=function(tekst) return p.ZamianaEncodeTekst(tekst); end, }; if(not w_adresie)then return OperacjeHtml(adres,funkcja_operacji[2]); else return p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,OperacjeHtml,funkcja_naglowek,funkcja_operacji); end; end; function p.ParametryZaawansowanyEncodeURL(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek) local KrokParametryZaawansowanyEncodeURLABC=function(a) a=mw.uri.decode(a,"PATH"); a=p.EncodeSpecjalneZnakiHtml(a,true); if(z_kodowaniem)then a=mw.uri.encode(a,"PATH");end; return a; end; function ParametryZaawansowanyEncodeURL(a,b,c,funkcja_operacji) b=mw.uri.decode(b,"PATH");b=funkcja_operacji(b,true);b=mw.uri.encode(b,"PATH"); c=mw.uri.decode(c,"PATH");c=funkcja_operacji(c,true);c=mw.uri.encode(c,"PATH"); return a..(b.."="..c); end; local function OperacjeURL(adres,funkcja_operacji) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",function(a,b,c)return ParametryZaawansowanyEncodeURL(a,b,c,funkcja_operacji);end); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",function(a,b,c)return ParametryZaawansowanyEncodeURL(a,b,c,funkcja_operacji);end); return adres; end; local funkcja_operacji={ [1]=function(tekst) return p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,"[^/]+",KrokParametryZaawansowanyEncodeURLABC); end, [2]=function(tekst) return KrokParametryZaawansowanyEncodeURLABC(tekst); end, [3]=function(tekst) return KrokParametryZaawansowanyEncodeURLABC(tekst); end, }; if(not w_adresie)then return OperacjeURL(adres,funkcja_operacji[2]); else return p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,OperacjeURL,funkcja_naglowek,funkcja_operacji); end; end; function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek) local EncodeHtmlAB=function(a,b,c,funkcja_operacji) b=funkcja_operacji(b);c=funkcja_operacji(c); return a..b.."="..c; end; local function ParametryHtml(parametr,funkcja_operacji) parametr=mw.ustring.gsub(parametr,"^(%??)([^&=]*)=([^&]*)",function(a,b,c)return EncodeHtmlAB(a,b,c,funkcja_operacji);end); parametr=mw.ustring.gsub(parametr,"(&)([^&=]*)=([^&]*)",function(a,b,c)return EncodeHtmlAB(a,b,c,funkcja_operacji);end); return parametr; end; local funkcja_operacji={ [1]=function(tekst) return p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,"[^/]+",p.EncodeHtml); end, [2]=function(tekst) return p.EncodeHtml(tekst); end, [3]=function(tekst) return p.EncodeHtml(tekst); end, }; if(not w_adresie)then return ParametryHtml(parametr,funkcja_operacji[2]); else return p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(parametr,funkcja_strona,ParametryHtml,funkcja_naglowek,funkcja_operacji); end; end; function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek) local KrokEncodeZaawansowanyParametryHtmlABC=function(a) a=mw.uri.decode(a,"PATH"); a=p.EncodePodstawoweHtmlTekstu(a); if(z_kodowaniem)then a=mw.uri.encode(a,"PATH");end; return a; end; local EncodeZaawansowanyParametryHtmlABC=function(a,b,c,funkcja_operacji) b=funkcja_operacji(b); c=funkcja_operacji(c); return (a or "")..(b.."="..c); end; local function OperacjeParametryHtmlABC(adres,funkcja_operacji) adres=mw.ustring.gsub(adres,"^(%??)([^&=]-)=([^&]*)",function(a,b,c)return EncodeZaawansowanyParametryHtmlABC(a,b,c,funkcja_operacji);end); adres=mw.ustring.gsub(adres,"([&])([^&=]-)=([^&]*)",function(a,b,c)return EncodeZaawansowanyParametryHtmlABC(a,b,c,funkcja_operacji);end); return adres; end; local funkcja_operacji={ [1]=function(tekst) return p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,"[^/]+",KrokEncodeZaawansowanyParametryHtmlABC); end, [2]=function(tekst) return KrokEncodeZaawansowanyParametryHtmlABC(tekst); end, [3]=function(tekst) return KrokEncodeZaawansowanyParametryHtmlABC(tekst); end, }; if(not w_adresie)then return OperacjeParametryHtmlABC(adres,funkcja_operacji[2]); else return p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,OperacjeParametryHtmlABC,funkcja_naglowek,funkcja_operacji); end; end; function p.EncodeHashKoduHtmlTekstu(tekst) local ile;local ile2=0; tekst,ile=mw.ustring.gsub(tekst,"&([^&;%s]+);",function(kod) if((kod=="num")or(kod=="#35")or(kod=="#x23"))then ile2=ile2+1; return "&amp;num;"; end; return nil; end); return tekst,ile,ile2; end; function p.DecodeHashKoduHtmlTekstu(tekst,ile) if(((ile)and(ile>0))or(not ile))then tekst=mw.ustring.gsub(tekst,"&amp;num;",function(kod) return "&#35;"; end); end; return tekst; end; function p.EncodeTempHashKoduHtmlTekstu(tekst) local ile1;local ile2; tekst,ile1=mw.ustring.gsub(tekst,"&#(%d+);",function(kod) return "&&num;"..kod..";"; end); tekst,ile2=mw.ustring.gsub(tekst,"&#x(%x+);",function(kod) return "&&num;x"..kod..";"; end); return tekst,ile1,ile2; end; function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2) if(((ile1)and(ile1>0))or(not ile1))then tekst=mw.ustring.gsub(tekst,"&&num;(%d+);",function(kod) return "&#"..kod..";" end); end; if(((ile2)and(ile2>0))or(not ile2))then tekst=mw.ustring.gsub(tekst,"&&num;x(%x+);",function(kod) return "&#x"..kod..";" end); end; return tekst; end; function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny) local adres=p.ParametryEncodeURL(adres,true, function(strona,Func) if(protokolarny)then local adres,protokol=p["UrlBezProtokołu"](strona); adres=Func(adres); adres=(protokol or "")..adres; return adres; else return Func(strona); end; end, function(naglowek,Func) naglowek=Func(naglowek); return naglowek; end); return adres; end; function p.UriEncode(frame) local parametry_modul=require("Module:Parametry"); local html=parametry_modul.PobierzParametryRamki(frame)("html"); html=mw.ustring.gsub(html,"^(%a+://)(.+)$",function(prot,strona) return prot..p.AdresDomniemanieBezProtokolarnyEncodeURL(strona,false); end); return html; end; function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony) elementy_adresu_strony=p.KodowanieOmijanieFunkcyjne(elementy_adresu_strony,true,"&(#35);",function(elementy_adresu_strony) elementy_adresu_strony=p.DecodeKoduHTMLZnaku(elementy_adresu_strony); return elementy_adresu_strony; end); elementy_adresu_strony=p.EncodeSpecjalneZnakiHtml(elementy_adresu_strony,true); return elementy_adresu_strony; end; function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem) if(czy_parametry_strony)then elementy_adresu_strony=p.EncodeZaawansowanyParametryHtml(elementy_adresu_strony,z_kodowaniem); else elementy_adresu_strony=mw.uri.decode(elementy_adresu_strony,"PATH"); elementy_adresu_strony=p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony); if(z_kodowaniem)then elementy_adresu_strony=mw.uri.encode(elementy_adresu_strony,"PATH");end; end; return elementy_adresu_strony; end; function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny) local parametry_modul=require("Module:Parametry") local PobierzParametry=parametry_modul.PobierzParametryRamki(frame); local html=PobierzParametry("html"); local z_kodowaniem_html=PobierzParametry("encode"); if(z_kodowaniem_html)then z_kodowaniem=parametry_modul.CzyTak(z_kodowaniem_html);end; local html=p.EncodeZaawansowanyParametryHtml(html,z_kodowaniem,true, function(strona,Func) if(protokolarny)then local adres,protokol=p["UrlBezProtokołu"](strona); adres=Func(adres); adres=(protokol or "")..adres; return adres; else return Func(strona); end; end, function(naglowek,Func) naglowek=Func(naglowek); return naglowek; end); return html; end; return p; 8f5qnuopzr53qqfryg6q6e10d3oxfeo 553340 553336 2026-08-27T17:39:18Z Persino 2851 553340 Scribunto text/plain local p={}; function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja) local szeregi_modul=require("Module:Szeregi"); wzor=wzor or "&([^&;%s]+);" html=szeregi_modul.SzeregiOmijanieFunkcyjne(html,normalnie,wzor,funkcja, function(kod) return "&"..kod..";"; end); return html; end; p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); tekst=mw.ustring.gsub(tekst,"([%|%[%]%(%)%+%-%*%?%.%^%$%%'])",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) return tekst; end; p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); tekst=mw.ustring.gsub(tekst,"&#(%d+);",function (s) return tostring(mw.ustring.char(s));end); tekst=mw.ustring.gsub(tekst,"&#x(%x+);", function(n) return mw.ustring.char(tonumber(n, 16));end); return tekst; end; function p.ZnakiSpecjalneTaguNowiki(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_nawiasy=html_dane_modul.tabela_nawiasowa; tekst=mw.ustring.gsub(tekst,"([%!{}|=<>%[%]])",tab_nawiasy); return tekst; end; function p.ZnakiSpecjalneWikiLinku(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_nawiasy=html_dane_modul.tabela_nawiasowa; tekst=mw.ustring.gsub(tekst,"([{}|<>%[%]])",tab_nawiasy); return tekst; end; function p.EncodeSpecjalneZnakiHtml(frame,normalnie) local parametry_modul=require("Module:Parametry"); local PobierzParametryRamki=parametry_modul.PobierzParametryRamki(frame); local html=PobierzParametryRamki("html"); local __normalnie=PobierzParametryRamki("normalnie"); normalnie=parametry_modul.CzyTak(__normalnie) or normalnie; --- local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_nawiasy=html_dane_modul.tabela_nawiasowa; local wzor_kody="([{}|<>%[%]#=%?&])"; html=p.KodowanieOmijanieFunkcyjne(html,normalnie,nil,function(ciag) ciag=mw.ustring.gsub(ciag,wzor_kody,tab_nawiasy); return ciag; end); return html; end; function p.EncodeZnakProloguList(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_nawiasy=html_dane_modul.tabela_nawiasowa; local lista_znaki="%#%*%;%:"; tekst=mw.ustring.gsub(tekst,"^\n?(["..lista_znaki.."])",tab_nawiasy); tekst=mw.ustring.gsub(tekst,"\n(["..lista_znaki.."])",function(znak) return "\n"..(tab_nawiasy[znak] or znak); end); return tekst; end; function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie) local parametry_modul=require("Module:Parametry"); local PobierzParametryRamki=parametry_modul.PobierzParametryRamki(frame); local tekst=PobierzParametryRamki("tekst"); local __normalnie=PobierzParametryRamki("normalnie"); normalnie=parametry_modul.CzyTak(__normalnie) or normalnie; --- local html_dane_modul=mw.loadData("Module:Html/dane"); local tabela_nawiasowa=html_dane_modul.tabela_nawiasowa; tekst=p.KodowanieOmijanieFunkcyjne(tekst,normalnie,nil,function(ciag) ciag=mw.ustring.gsub(ciag,"([=%?&])",tabela_nawiasowa); return ciag; end); return tekst; end; function p.PrzypisanieZnakoweEncodeHtml(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tabela_nawiasowa=html_dane_modul.tabela_nawiasowa; tekst=mw.ustring.gsub(tekst,"([=])",tabela_nawiasowa); return tekst; end; function p.ZamianaDwukropkaNaKodHtml(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tabela_nawiasowa=html_dane_modul.tabela_nawiasowa; tekst=mw.ustring.gsub(tekst,"([:])",tabela_nawiasowa); return tekst; end; function p.KodHTMLZnaku(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local znak=PobierzParametr(1); if(not parametry_modul.CzyTak(znak))then return "(błąd)";end; local czy_kod_znaku=PobierzParametr(2); local czy_tak=parametry_modul["CzyTakCiąg"](czy_kod_znaku); local ZnakFun=function(znak) if(#znak>1)then return mw.ustring.codepoint(znak); else return mw.ustring.byte(znak); end; end; if(czy_tak)then return "&amp;&num;"..tostring(ZnakFun(znak))..";"; else return "&#"..tostring(ZnakFun(znak))..";"; end; end; p["KodyHTMLZnakówWikiCiągu"] = function (frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local ciag_znakow=PobierzParametr(1); if(not parametry_modul.CzyTak(ciag_znakow))then return "(błąd)";end; local czy_kod_znaku=PobierzParametr(2); local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_znakowo_kodowa={}; local tabela_znakowa=html_dane_modul.tabela_znakowa; local ciag,_=mw.ustring.gsub(ciag_znakow,"(.)",function(znak) if(tabela_znakowa[znak])then if(not czy_kod_znaku)then return "&#"..tabela_znakowa[znak]..";"; else return "&amp;&num;"..tabela_znakowa[znak]..";"; end; end; return nil; end); return ciag; end; function p.EncodeId(id,bez_transformacji) id=(not bez_transformacji) and p.DecodeHtml(id,true) or id; local id=p.EncodeSpecjalneZnakiHtml(id,true); return id; end; function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr) parametr=mw.ustring.gsub(parametr,"‎",""); return parametr; end; function p.EncodeWiki(parametr,czy_nie_odstepy) parametr=p["TransformacjaKoduHtmlDoZnakuCiągu"](parametr); parametr=p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr); local parametry_modul=require("Module:Parametry"); if(not czy_nie_odstepy)then parametr=parametry_modul["Odstępy"]{[1]=parametr,[2]="tak",[3]="tak",}; end; parametr=mw.text.encode(parametr); return parametr; end; function p.DecodeWiki(parametr,czy_nie_odstepy) parametr=mw.text.decode(parametr); parametr=p["TransformacjaKoduHtmlDoZnakuCiągu"](parametr); parametr=p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr); if(not czy_nie_odstepy)then local parametry_modul=require("Module:Parametry"); parametr=parametry_modul["Odstępy"]{[1]=parametr,[2]="tak",}; end; return parametr; end; function p.IsEncodedHtml(parametr,encode,encode_real) local parametry_modul=require("Module:Parametry"); local spr_parametr_szereg=nil; local TempFunParametr=function(parametr) if(parametry_modul.TypeNil(spr_parametr_szereg))then local __spr_parametr_szereg=mw.ustring.match(parametr,"^[%w%p%s]*$"); spr_parametr_szereg=__spr_parametr_szereg and true or false; return spr_parametr_szereg; end; return spr_parametr_szereg; end; local spr_parametr_bez_procentu=nil; local TempFunBezProcentu=function(parametr) if(parametry_modul.TypeNil(spr_parametr_bez_procentu))then local __spr_parametr_bez_procentu=mw.ustring.match(parametr,"^[^%%]*$"); spr_parametr_bez_procentu=__spr_parametr_bez_procentu and true or false; return spr_parametr_bez_procentu; end; return spr_parametr_bez_procentu; end; local wynik=((encode_real)and(TempFunParametr(parametr)and(TempFunBezProcentu(parametr)))) or((encode)and(TempFunBezProcentu(parametr))) or(((not encode_real)or((encode_real)and(TempFunParametr(parametr)))) and(mw.ustring.match(parametr,"%%%x%x")) and(not mw.ustring.match(parametr,"%%$")) and(not mw.ustring.match(parametr,"%%.$")) and(not mw.ustring.match(parametr,"%%[^%x].")) and(not mw.ustring.match(parametr,"%%.[^%x]"))); return wynik and true or false; end; function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy) if(not parametr)then return;end; if(p.IsEncodedHtml(parametr,encode,encode_real))then return p.EncodeWiki(parametr,czy_nie_odstepy); end; return mw.uri.encode(parametr,"WIKI"); end; function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy) if(not parametr)then return;end; if(p.IsEncodedHtml(parametr,encode,encode_real))then if(spacje)then return p.DecodeWiki(mw.uri.decode(parametr,"WIKI")); else return p.EncodeWiki(mw.uri.decode(parametr,"WIKI")); end; end; if(spacje)then return p.DecodeWiki(parametr,czy_nie_odstepy); else return p.EncodeWiki(parametr,czy_nie_odstepy); end; end; function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik) znacznik=mw.ustring.gsub(znacznik,"([\"'])(.-[^\\])(%1)",function(cudzyslow_otwierajacy,atrybut,cudzyslow_zamykajacy) local ile1=0;local ile2; atrybut=p.KodowanieOmijanieFunkcyjne(atrybut,true,nil,function(atrybut) local __ile1; atrybut,__ile1=mw.ustring.gsub(atrybut,"([<>&])",function(a) return mw.text.encode(a); end); ile1=ile1+__ile1; return atrybut; end); atrybut,ile2=mw.ustring.gsub(atrybut,"(\\\")",function(a) return p["KodyHTMLZnakówWikiCiągu"](a); end); if(ile1+ile2>0)then return cudzyslow_otwierajacy..atrybut..cudzyslow_zamykajacy; end; return nil; end); return znacznik; end; function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value) value=mw.ustring.gsub(value,"(&)(%a+)(;)",function(amp,kod_html,srednik) kod_html=mw.ustring.lower(kod_html); if((kod_html=="lt")or(kod_html=="gt")or(kod_html=="amp"))then return mw.text.decode(amp..kod_html..srednik); end; return nil; end); local lewy_ukosnik=mw.ustring.byte("\\"); local cudzyslow=mw.ustring.byte("\""); value=mw.ustring.gsub(value,"(&#"..lewy_ukosnik..";&#"..cudzyslow..";)","\\\""); return value; end; p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_jednostki=PobierzParametr("nazwa jednostki") or PobierzParametr("strona") or PobierzParametr(1); czy_nie_dolne_myslniki=PobierzParametr("z nie dolnymi z myślnikami") or PobierzParametr(2) or czy_nie_dolne_myslniki; czy_nie_dolne_myslniki=parametry_modul.CzyTak(czy_nie_dolne_myslniki); if(not nazwa_jednostki)then return;end; nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.nazwa_jednostki or p.DecodeHtml(nazwa_jednostki,true); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.nazwa_jednostki))then tabela_nazw_adresu.nazwa_jednostki=nazwa_jednostki;end; local naglowek=czy_nie_dolne_myslniki and mw.ustring.match(nazwa_jednostki,"^[^#]*#[%s_]*(.-)[%s_]*$") or mw.ustring.match(nazwa_jednostki,"^[^#]*#(.-)%s*$"); naglowek=parametry_modul["Odstępy"]{[1]=naglowek,[2]="tak",[3]=((not czy_nie_dolne_myslniki)and "tak" or nil),}; return naglowek; end; p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_jednostki=PobierzParametr("nazwa jednostki") or PobierzParametr("strona") or PobierzParametr(1); czy_naprawiaj=PobierzParametr("czy naprawiać") or PobierzParametr(2) or czy_naprawiaj; czy_naprawiaj=parametry_modul.CzyTak(czy_naprawiaj); if(not nazwa_jednostki)then return;end; nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.nazwa_jednostki or p.DecodeHtml(nazwa_jednostki,true); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.nazwa_jednostki))then tabela_nazw_adresu.nazwa_jednostki=nazwa_jednostki;end; if(czy_naprawiaj)then local bez_naglowka=tabela_nazw_adresu and tabela_nazw_adresu.bez_naglowka or mw.ustring.gsub(nazwa_jednostki,"^[%s_]*([^#]-)[%s_]*#(.*)$","%1"); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.bez_naglowka))then tabela_nazw_adresu.bez_naglowka=bez_naglowka;end; local parametry=mw.ustring.match(bez_naglowka,"^.-%?*%?[%s_]*([^&]+=[^&]-.-)[%s_]*$"); if(parametry)then parametry=mw.ustring.gsub(parametry,"[%s_]*=[%s_]*","=") or nil; parametry=mw.ustring.gsub(parametry,"[%s_]*&[%s_]*","&") or nil; end; return parametry; else local bez_naglowka=tabela_nazw_adresu and tabela_nazw_adresu.bez_naglowka or mw.ustring.gsub(nazwa_jednostki,"^([^#]-)#(.*)$","%1"); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.bez_naglowka))then tabela_nazw_adresu.bez_naglowka=bez_naglowka;end; local parametry=mw.ustring.match(bez_naglowka,"^.-%?*%?([^&]+=[^&]-.-)%s*$"); return parametry; end; end; p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_jednostki=PobierzParametr("nazwa jednostki") or PobierzParametr("strona") or PobierzParametr(1); czy_naprawiaj=PobierzParametr("czy naprawiać") or PobierzParametr(2) or czy_naprawiaj; czy_naprawiaj=parametry_modul.CzyTak(czy_naprawiaj); if(not nazwa_jednostki)then return;end; nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.nazwa_jednostki or p.DecodeHtml(nazwa_jednostki,true); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.nazwa_jednostki))then tabela_nazw_adresu.nazwa_jednostki=nazwa_jednostki;end; if(czy_naprawiaj)then nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.bez_naglowka or mw.ustring.gsub(nazwa_jednostki,"^[%s_]*([^#]-)[%s_]*#(.*)$","%1"); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.bez_naglowka))then tabela_nazw_adresu.bez_naglowka=nazwa_jednostki;end; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.-%?*)[%s_]*%?[^&]+=[^&]*.*$","%1"); else nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.bez_naglowka or mw.ustring.gsub(nazwa_jednostki,"^([^#]-)#(.*)$","%1"); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.bez_naglowka))then tabela_nazw_adresu.bez_naglowka=nazwa_jednostki;end; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.-%?*)%?[^&]+=[^&]*.*$","%1"); end; local strony_modul=require("Module:Strony"); local czy_url=strony_modul.SprawdzanieURL(nazwa_jednostki); czy_url=czy_url and true or (not czy_naprawiaj); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",[3]=czy_url and true or false,}; return nazwa_jednostki; end; p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local parametry_strony=PobierzParametr("parametry") or PobierzParametr(1); czy_naprawiaj=PobierzParametr("czy naprawiać") or PobierzParametr(2) or czy_naprawiaj; czy_naprawiaj=parametry_modul.CzyTak(czy_naprawiaj); if(parametry_modul.CzyTak(parametry_strony))then local nazwa_strony_linku; if(czy_naprawiaj)then if(mw.ustring.match(parametry_strony,"^[%s_]*title[%s_]*=[^&]*"))then nazwa_strony_linku=mw.ustring.match(parametry_strony,"^[%s_]*title[%s_]*=([^&]+)&?.*$"); parametry_strony=mw.ustring.gsub(parametry_strony,"^[%s_]*title[%s_]*=([^&]+)&?",""); elseif(mw.ustring.match(parametry_strony,"&[%s_]*title[%s_]*=[^&]*"))then nazwa_strony_linku=mw.ustring.match(parametry_strony,"&[%s_]*title[%s_]*=([^&]+)&?.*$"); parametry_strony=mw.ustring.gsub(parametry_strony,"&[%s_]*title[%s_]*=([^&]+).*$",""); end; else if(mw.ustring.match(parametry_strony,"^title=[^&]*"))then nazwa_strony_linku=mw.ustring.match(parametry_strony,"^title=([^&]+)&?.*$"); parametry_strony=mw.ustring.gsub(parametry_strony,"^title=([^&]+)&?",""); elseif(mw.ustring.match(parametry_strony,"&title=[^&]*"))then nazwa_strony_linku=mw.ustring.match(parametry_strony,"&title=([^&]+)&?.*$"); parametry_strony=mw.ustring.gsub(parametry_strony,"&title=([^&]+).*$",""); end; end; nazwa_strony_linku=parametry_modul["Odstępy"]{[1]=nazwa_strony_linku,[2]="tak",[3]=(not czy_naprawiaj),}; return nazwa_strony_linku,parametry_strony; else return nil; end; end; p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_jednostki=PobierzParametr("nazwa jednostki") or PobierzParametr("strona") or PobierzParametr(1); czy_naprawiaj=PobierzParametr("czy naprawiać") or PobierzParametr(2) or czy_naprawiaj; czy_naprawiaj=parametry_modul.CzyTak(czy_naprawiaj); local tabela_nazw_adresu=tabela_nazw_adresu or {}; local adres=p["NazwaStronyAdresu"](nazwa_jednostki,(czy_naprawiaj)and true or nil,tabela_nazw_adresu); local parametry_strony=p["ParametryStronyAdresu"](nazwa_jednostki,(czy_naprawiaj)and true or nil,tabela_nazw_adresu); local naglowek_strony=p["NagłówekStronyAdresu"](nazwa_jednostki,(czy_naprawiaj)and true or nil,tabela_nazw_adresu); nazwa_jednostki=adres..(parametry_strony and ("?"..parametry_strony) or "")..(naglowek_strony and ("#"..naglowek_strony) or ""); return nazwa_jednostki; end; function p.URLStrona(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local url=PobierzParametr("url") or PobierzParametr(1); local z_ukosnikiem=parametry_modul.CzyTak(PobierzParametr("ukośnik") or PobierzParametr(2)); local serwer,nazwa=mw.ustring.match(url,"^//+([^%s/]+)"..((z_ukosnikiem) and "/+" or "").."(/?.-)$"); return serwer,nazwa; end; p["UrlBezProtokołu"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local url=PobierzParametr("url") or PobierzParametr(1); local mail=mw.ustring.match(url,"^.*@([^@]+)$"); if(mail)then return "//"..mail,"mail",1; end; local protokol,strona=mw.ustring.match(url,"^(%a+:)(/+.-)$"); if((protokol)and(strona))then strona=mw.ustring.gsub(strona,"^(/+)","//"); return strona,protokol,2; end; local strona=mw.ustring.match(url,"^:?(/+.-)$"); if(strona)then strona=mw.ustring.gsub(strona,"^(/+)","//"); return strona,nil,3; end; return "//"..url,nil,-1; end; function p.DecodeKoduHTMLZnaku(tekst) local html_dane_modul=mw.loadData("Module:Html/dane"); local kody_literowe_html_i_ich_odpowiedniki_znakowe=html_dane_modul.kody_literowe_html_i_ich_odpowiedniki_znakowe; -- najpierw nazwane encje local ile1; tekst,ile1 = mw.ustring.gsub(tekst,"(&%a+%;)", kody_literowe_html_i_ich_odpowiedniki_znakowe); -- encje numeryczne dziesiętne: &#956; local ile2; tekst,ile2=mw.ustring.gsub(tekst,"&#(%d+);", function(n) return mw.ustring.char(tonumber(n)) end); -- encje numeryczne szesnastkowe: &#x3BC; local ile3; tekst,ile3 = mw.ustring.gsub(tekst,"&#x(%x+);", function(n) return mw.ustring.char(tonumber(n, 16)) end); return tekst,ile1,ile2,ile3; end; function p.ZamianaEncodeTekst(tekst) tekst=mw.uri.encode(mw.uri.decode(tekst,"PATH"),"PATH"); return tekst; end; function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor,funkcja) tekst=mw.ustring.gsub(tekst,wzor,function(tekst) tekst=funkcja(tekst); return tekst; end); return tekst; end; function p.StronaParametryIdentyfikacjaAdresuHtml(adres) local ile_w;local ile; adres,ile_w,ile=p.EncodeHashKoduHtmlTekstu(adres); local ile1;local ile2; if(ile_w>0)then adres,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(adres); end; local strona,naglowek=mw.ustring.match(adres,"^[%s_]*([^#]-)[%s_]*#[%s_]*(.-)[%s_]*$"); if((not strona)or(not naglowek))then strona=mw.ustring.match(adres,"^[%s_]*(.-)[%s_]*$"); end; local __strona,parametry=mw.ustring.match(strona,"^(.-%?*)%?([^&=]-=.*)$"); strona=__strona or strona; if(ile_w>0)then strona=p.DecodeHashKoduHtmlTekstu(p.DecodeTempHashKoduHtmlTekstu(strona,ile1,ile2),ile); parametry=parametry and p.DecodeHashKoduHtmlTekstu(p.DecodeTempHashKoduHtmlTekstu(parametry,ile1,ile2),ile) or nil; naglowek=naglowek and p.DecodeHashKoduHtmlTekstu(p.DecodeTempHashKoduHtmlTekstu(naglowek,ile1,ile2),ile) or nil; end; return strona,parametry,naglowek; end; function p.TworzenieAdresuHtml(strona,parametry,naglowek) local adres=strona..(parametry and ("?"..parametry) or "")..((naglowek)and ("#"..naglowek) or ""); return adres; end; function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek,funkcja_operacji) local SprawdzanieFuncTekst=function(tekst) local spacja=" _\t";local interpunkcja="%,%.%:%?%!%(%)%;";local adres="%\\%/";local hash="%#"; local regex="^[%a%d"..spacja..interpunkcja..adres..hash.."]*$"; return mw.ustring.match(tekst,regex); end; local czy_adres=SprawdzanieFuncTekst(adres); if(czy_adres)then return adres;end; local strona,parametry,naglowek=p.StronaParametryIdentyfikacjaAdresuHtml(adres); strona=funkcja_strona and funkcja_strona(strona,funkcja_operacji and funkcja_operacji[1] or nil) or strona; parametry=(parametry and funkcja_parametry) and funkcja_parametry(parametry,funkcja_operacji and funkcja_operacji[2] or nil) or parametry; naglowek=(naglowek and funkcja_naglowek) and funkcja_naglowek(naglowek,funkcja_operacji and funkcja_operacji[3] or nil) or naglowek; local adres=p.TworzenieAdresuHtml(strona,parametry,naglowek); return adres; end; function p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek) local function ParametryEncodeURL(a,b,c,funkcja_operacji) return a..funkcja_operacji(b).."="..funkcja_operacji(c); end; local function OperacjeHtml(adres,funkcja_operacji) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",function(a,b,c)return ParametryEncodeURL(a,b,c,funkcja_operacji);end); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",function(a,b,c)return ParametryEncodeURL(a,b,c,funkcja_operacji);end); return adres; end; local funkcja_operacji={ [1]=function(tekst) return p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,"[^/]+",p.ZamianaEncodeTekst); end, [2]=function(tekst) return p.ZamianaEncodeTekst(tekst); end, [3]=function(tekst) return p.ZamianaEncodeTekst(tekst); end, }; if(not w_adresie)then return OperacjeHtml(adres,funkcja_operacji[2]); else return p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,OperacjeHtml,funkcja_naglowek,funkcja_operacji); end; end; function p.ParametryZaawansowanyEncodeURL(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek) local KrokParametryZaawansowanyEncodeURLABC=function(a) a=mw.uri.decode(a,"PATH"); a=p.EncodeSpecjalneZnakiHtml(a,true); if(z_kodowaniem)then a=mw.uri.encode(a,"PATH");end; return a; end; function ParametryZaawansowanyEncodeURL(a,b,c,funkcja_operacji) b=mw.uri.decode(b,"PATH");b=funkcja_operacji(b,true);b=mw.uri.encode(b,"PATH"); c=mw.uri.decode(c,"PATH");c=funkcja_operacji(c,true);c=mw.uri.encode(c,"PATH"); return a..(b.."="..c); end; local function OperacjeURL(adres,funkcja_operacji) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",function(a,b,c)return ParametryZaawansowanyEncodeURL(a,b,c,funkcja_operacji);end); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",function(a,b,c)return ParametryZaawansowanyEncodeURL(a,b,c,funkcja_operacji);end); return adres; end; local funkcja_operacji={ [1]=function(tekst) return p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,"[^/]+",KrokParametryZaawansowanyEncodeURLABC); end, [2]=function(tekst) return KrokParametryZaawansowanyEncodeURLABC(tekst); end, [3]=function(tekst) return KrokParametryZaawansowanyEncodeURLABC(tekst); end, }; if(not w_adresie)then return OperacjeURL(adres,funkcja_operacji[2]); else return p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,OperacjeURL,funkcja_naglowek,funkcja_operacji); end; end; function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek) local EncodeHtmlAB=function(a,b,c,funkcja_operacji) b=funkcja_operacji(b);c=funkcja_operacji(c); return a..b.."="..c; end; local function ParametryHtml(parametr,funkcja_operacji) parametr=mw.ustring.gsub(parametr,"^(%??)([^&=]*)=([^&]*)",function(a,b,c)return EncodeHtmlAB(a,b,c,funkcja_operacji);end); parametr=mw.ustring.gsub(parametr,"(&)([^&=]*)=([^&]*)",function(a,b,c)return EncodeHtmlAB(a,b,c,funkcja_operacji);end); return parametr; end; local funkcja_operacji={ [1]=function(tekst) return p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,"[^/]+",p.EncodeHtml); end, [2]=function(tekst) return p.EncodeHtml(tekst); end, [3]=function(tekst) return p.EncodeHtml(tekst); end, }; if(not w_adresie)then return ParametryHtml(parametr,funkcja_operacji[2]); else return p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(parametr,funkcja_strona,ParametryHtml,funkcja_naglowek,funkcja_operacji); end; end; function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek) local KrokEncodeZaawansowanyParametryHtmlABC=function(a) a=mw.uri.decode(a,"PATH"); a=p.EncodePodstawoweHtmlTekstu(a); if(z_kodowaniem)then a=mw.uri.encode(a,"PATH");end; return a; end; local EncodeZaawansowanyParametryHtmlABC=function(a,b,c,funkcja_operacji) b=funkcja_operacji(b); c=funkcja_operacji(c); return (a or "")..(b.."="..c); end; local function OperacjeParametryHtmlABC(adres,funkcja_operacji) adres=mw.ustring.gsub(adres,"^(%??)([^&=]-)=([^&]*)",function(a,b,c)return EncodeZaawansowanyParametryHtmlABC(a,b,c,funkcja_operacji);end); adres=mw.ustring.gsub(adres,"([&])([^&=]-)=([^&]*)",function(a,b,c)return EncodeZaawansowanyParametryHtmlABC(a,b,c,funkcja_operacji);end); return adres; end; local funkcja_operacji={ [1]=function(tekst) return p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,"[^/]+",KrokEncodeZaawansowanyParametryHtmlABC); end, [2]=function(tekst) return KrokEncodeZaawansowanyParametryHtmlABC(tekst); end, [3]=function(tekst) return KrokEncodeZaawansowanyParametryHtmlABC(tekst); end, }; if(not w_adresie)then return OperacjeParametryHtmlABC(adres,funkcja_operacji[2]); else return p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,OperacjeParametryHtmlABC,funkcja_naglowek,funkcja_operacji); end; end; function p.EncodeHashKoduHtmlTekstu(tekst) local ile;local ile2=0; tekst,ile=mw.ustring.gsub(tekst,"&([^&;%s]+);",function(kod) if((kod=="num")or(kod=="#35")or(kod=="#x23"))then ile2=ile2+1; return "&amp;num;"; end; return nil; end); return tekst,ile,ile2; end; function p.DecodeHashKoduHtmlTekstu(tekst,ile) if(((ile)and(ile>0))or(not ile))then tekst=mw.ustring.gsub(tekst,"&amp;num;",function(kod) return "&#35;"; end); end; return tekst; end; function p.EncodeTempHashKoduHtmlTekstu(tekst) local ile1;local ile2; tekst,ile1=mw.ustring.gsub(tekst,"&#(%d+);",function(kod) return "&&num;"..kod..";"; end); tekst,ile2=mw.ustring.gsub(tekst,"&#x(%x+);",function(kod) return "&&num;x"..kod..";"; end); return tekst,ile1,ile2; end; function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2) if(((ile1)and(ile1>0))or(not ile1))then tekst=mw.ustring.gsub(tekst,"&&num;(%d+);",function(kod) return "&#"..kod..";" end); end; if(((ile2)and(ile2>0))or(not ile2))then tekst=mw.ustring.gsub(tekst,"&&num;x(%x+);",function(kod) return "&#x"..kod..";" end); end; return tekst; end; function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny) local adres=p.ParametryEncodeURL(adres,true, function(strona,Func) if(protokolarny)then local adres,protokol=p["UrlBezProtokołu"](strona); adres=Func(adres); adres=(protokol or "")..adres; return adres; else return Func(strona); end; end, function(naglowek,Func) naglowek=Func(naglowek); return naglowek; end); return adres; end; function p.UriEncode(frame) local parametry_modul=require("Module:Parametry"); local html=parametry_modul.PobierzParametryRamki(frame)("html"); html=mw.ustring.gsub(html,"^(%a+://)(.+)$",function(prot,strona) return prot..p.AdresDomniemanieBezProtokolarnyEncodeURL(strona,false); end); return html; end; function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony) elementy_adresu_strony=p.KodowanieOmijanieFunkcyjne(elementy_adresu_strony,true,"&(#35);",function(elementy_adresu_strony) elementy_adresu_strony=p.DecodeKoduHTMLZnaku(elementy_adresu_strony); return elementy_adresu_strony; end); elementy_adresu_strony=p.EncodeSpecjalneZnakiHtml(elementy_adresu_strony,true); return elementy_adresu_strony; end; function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem) if(czy_parametry_strony)then elementy_adresu_strony=p.EncodeZaawansowanyParametryHtml(elementy_adresu_strony,z_kodowaniem); else elementy_adresu_strony=mw.uri.decode(elementy_adresu_strony,"PATH"); elementy_adresu_strony=p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony); if(z_kodowaniem)then elementy_adresu_strony=mw.uri.encode(elementy_adresu_strony,"PATH");end; end; return elementy_adresu_strony; end; function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny) local parametry_modul=require("Module:Parametry") local PobierzParametry=parametry_modul.PobierzParametryRamki(frame); local html=PobierzParametry("html"); local z_kodowaniem_html=PobierzParametry("encode"); if(z_kodowaniem_html)then z_kodowaniem=parametry_modul.CzyTak(z_kodowaniem_html);end; local html=p.EncodeZaawansowanyParametryHtml(html,z_kodowaniem,true, function(strona,Func) if(protokolarny)then local adres,protokol=p["UrlBezProtokołu"](strona); adres=Func(adres); adres=(protokol or "")..adres; return adres; else return Func(strona); end; end, function(naglowek,Func) naglowek=Func(naglowek); return naglowek; end); return html; end; return p; qp1do2baq555rl4pbmq32eyu518rqui 553367 553340 2026-08-28T08:51:24Z Persino 2851 553367 Scribunto text/plain local p={}; function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja) local szeregi_modul=require("Module:Szeregi"); wzor=wzor or "&([^&;%s]+);" html=szeregi_modul.SzeregiOmijanieFunkcyjne(html,normalnie,wzor,funkcja, function(kod) return "&"..kod..";"; end); return html; end; p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); tekst=mw.ustring.gsub(tekst,"([%|%[%]%(%)%+%-%*%?%.%^%$%%'])",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) return tekst; end; p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); tekst=mw.ustring.gsub(tekst,"&#(%d+);",function (s) return tostring(mw.ustring.char(s));end); tekst=mw.ustring.gsub(tekst,"&#x(%x+);", function(n) return mw.ustring.char(tonumber(n, 16));end); return tekst; end; function p.ZnakiSpecjalneTaguNowiki(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_nawiasy=html_dane_modul.tabela_nawiasowa; tekst=mw.ustring.gsub(tekst,"([%!{}|=<>%[%]])",tab_nawiasy); return tekst; end; function p.ZnakiSpecjalneWikiLinku(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_nawiasy=html_dane_modul.tabela_nawiasowa; tekst=mw.ustring.gsub(tekst,"([{}|<>%[%]])",tab_nawiasy); return tekst; end; function p.EncodeSpecjalneZnakiHtml(frame,normalnie) local parametry_modul=require("Module:Parametry"); local PobierzParametryRamki=parametry_modul.PobierzParametryRamki(frame); local html=PobierzParametryRamki("html"); local __normalnie=PobierzParametryRamki("normalnie"); normalnie=parametry_modul.CzyTak(__normalnie) or normalnie; --- local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_nawiasy=html_dane_modul.tabela_nawiasowa; local wzor_kody="([{}|<>%[%]#=%?&])"; html=p.KodowanieOmijanieFunkcyjne(html,normalnie,nil,function(ciag) ciag=mw.ustring.gsub(ciag,wzor_kody,tab_nawiasy); return ciag; end); return html; end; function p.EncodeZnakProloguList(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_nawiasy=html_dane_modul.tabela_nawiasowa; local lista_znaki="%#%*%;%:"; tekst=mw.ustring.gsub(tekst,"^\n?(["..lista_znaki.."])",tab_nawiasy); tekst=mw.ustring.gsub(tekst,"\n(["..lista_znaki.."])",function(znak) return "\n"..(tab_nawiasy[znak] or znak); end); return tekst; end; function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie) local parametry_modul=require("Module:Parametry"); local PobierzParametryRamki=parametry_modul.PobierzParametryRamki(frame); local tekst=PobierzParametryRamki("tekst"); local __normalnie=PobierzParametryRamki("normalnie"); normalnie=parametry_modul.CzyTak(__normalnie) or normalnie; --- local html_dane_modul=mw.loadData("Module:Html/dane"); local tabela_nawiasowa=html_dane_modul.tabela_nawiasowa; tekst=p.KodowanieOmijanieFunkcyjne(tekst,normalnie,nil,function(ciag) ciag=mw.ustring.gsub(ciag,"([=%?&])",tabela_nawiasowa); return ciag; end); return tekst; end; function p.PrzypisanieZnakoweEncodeHtml(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tabela_nawiasowa=html_dane_modul.tabela_nawiasowa; tekst=mw.ustring.gsub(tekst,"([=])",tabela_nawiasowa); return tekst; end; function p.ZamianaDwukropkaNaKodHtml(frame) local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tabela_nawiasowa=html_dane_modul.tabela_nawiasowa; tekst=mw.ustring.gsub(tekst,"([:])",tabela_nawiasowa); return tekst; end; function p.KodHTMLZnaku(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local znak=PobierzParametr(1); if(not parametry_modul.CzyTak(znak))then return "(błąd)";end; local czy_kod_znaku=PobierzParametr(2); local czy_tak=parametry_modul["CzyTakCiąg"](czy_kod_znaku); local ZnakFun=function(znak) if(#znak>1)then return mw.ustring.codepoint(znak); else return mw.ustring.byte(znak); end; end; if(czy_tak)then return "&amp;&num;"..tostring(ZnakFun(znak))..";"; else return "&#"..tostring(ZnakFun(znak))..";"; end; end; p["KodyHTMLZnakówWikiCiągu"] = function (frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local ciag_znakow=PobierzParametr(1); if(not parametry_modul.CzyTak(ciag_znakow))then return "(błąd)";end; local czy_kod_znaku=PobierzParametr(2); local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_znakowo_kodowa={}; local tabela_znakowa=html_dane_modul.tabela_znakowa; local ciag,_=mw.ustring.gsub(ciag_znakow,"(.)",function(znak) if(tabela_znakowa[znak])then if(not czy_kod_znaku)then return "&#"..tabela_znakowa[znak]..";"; else return "&amp;&num;"..tabela_znakowa[znak]..";"; end; end; return nil; end); return ciag; end; function p.EncodeId(id,bez_transformacji) id=(not bez_transformacji) and p.DecodeHtml(id,true) or id; local id=p.EncodeSpecjalneZnakiHtml(id,true); return id; end; function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr) parametr=mw.ustring.gsub(parametr,"‎",""); return parametr; end; function p.EncodeWiki(parametr,czy_nie_odstepy) parametr=p["TransformacjaKoduHtmlDoZnakuCiągu"](parametr); parametr=p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr); local parametry_modul=require("Module:Parametry"); if(not czy_nie_odstepy)then parametr=parametry_modul["Odstępy"]{[1]=parametr,[2]="tak",[3]="tak",}; end; parametr=mw.text.encode(parametr); return parametr; end; function p.DecodeWiki(parametr,czy_nie_odstepy) parametr=mw.text.decode(parametr); parametr=p["TransformacjaKoduHtmlDoZnakuCiągu"](parametr); parametr=p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr); if(not czy_nie_odstepy)then local parametry_modul=require("Module:Parametry"); parametr=parametry_modul["Odstępy"]{[1]=parametr,[2]="tak",}; end; return parametr; end; function p.IsEncodedHtml(parametr,encode,encode_real) local parametry_modul=require("Module:Parametry"); local spr_parametr_szereg=nil; local TempFunParametr=function(parametr) if(parametry_modul.TypeNil(spr_parametr_szereg))then local __spr_parametr_szereg=mw.ustring.match(parametr,"^[%w%p%s]*$"); spr_parametr_szereg=__spr_parametr_szereg and true or false; return spr_parametr_szereg; end; return spr_parametr_szereg; end; local spr_parametr_bez_procentu=nil; local TempFunBezProcentu=function(parametr) if(parametry_modul.TypeNil(spr_parametr_bez_procentu))then local __spr_parametr_bez_procentu=mw.ustring.match(parametr,"^[^%%]*$"); spr_parametr_bez_procentu=__spr_parametr_bez_procentu and true or false; return spr_parametr_bez_procentu; end; return spr_parametr_bez_procentu; end; local wynik=((encode_real)and(TempFunParametr(parametr)and(TempFunBezProcentu(parametr)))) or((encode)and(TempFunBezProcentu(parametr))) or(((not encode_real)or((encode_real)and(TempFunParametr(parametr)))) and(mw.ustring.match(parametr,"%%%x%x")) and(not mw.ustring.match(parametr,"%%$")) and(not mw.ustring.match(parametr,"%%.$")) and(not mw.ustring.match(parametr,"%%[^%x].")) and(not mw.ustring.match(parametr,"%%.[^%x]"))); return wynik and true or false; end; function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy) if(not parametr)then return;end; if(p.IsEncodedHtml(parametr,encode,encode_real))then return p.EncodeWiki(parametr,czy_nie_odstepy); end; return mw.uri.encode(parametr,"WIKI"); end; function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy) if(not parametr)then return;end; if(p.IsEncodedHtml(parametr,encode,encode_real))then if(spacje)then return p.DecodeWiki(mw.uri.decode(parametr,"WIKI")); else return p.EncodeWiki(mw.uri.decode(parametr,"WIKI")); end; end; if(spacje)then return p.DecodeWiki(parametr,czy_nie_odstepy); else return p.EncodeWiki(parametr,czy_nie_odstepy); end; end; function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik) znacznik=mw.ustring.gsub(znacznik,"([\"'])(.-[^\\])(%1)",function(cudzyslow_otwierajacy,atrybut,cudzyslow_zamykajacy) local ile1=0;local ile2; atrybut=p.KodowanieOmijanieFunkcyjne(atrybut,true,nil,function(atrybut) local __ile1; atrybut,__ile1=mw.ustring.gsub(atrybut,"([<>&])",function(a) return mw.text.encode(a); end); ile1=ile1+__ile1; return atrybut; end); atrybut,ile2=mw.ustring.gsub(atrybut,"(\\\")",function(a) return p["KodyHTMLZnakówWikiCiągu"](a); end); if(ile1+ile2>0)then return cudzyslow_otwierajacy..atrybut..cudzyslow_zamykajacy; end; return nil; end); return znacznik; end; function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value) value=mw.ustring.gsub(value,"(&)(%a+)(;)",function(amp,kod_html,srednik) kod_html=mw.ustring.lower(kod_html); if((kod_html=="lt")or(kod_html=="gt")or(kod_html=="amp"))then return mw.text.decode(amp..kod_html..srednik); end; return nil; end); local lewy_ukosnik=mw.ustring.byte("\\"); local cudzyslow=mw.ustring.byte("\""); value=mw.ustring.gsub(value,"(&#"..lewy_ukosnik..";&#"..cudzyslow..";)","\\\""); return value; end; p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_jednostki=PobierzParametr("nazwa jednostki") or PobierzParametr("strona") or PobierzParametr(1); czy_nie_dolne_myslniki=PobierzParametr("z nie dolnymi z myślnikami") or PobierzParametr(2) or czy_nie_dolne_myslniki; czy_nie_dolne_myslniki=parametry_modul.CzyTak(czy_nie_dolne_myslniki); if(not nazwa_jednostki)then return;end; nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.nazwa_jednostki or p.DecodeHtml(nazwa_jednostki,true); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.nazwa_jednostki))then tabela_nazw_adresu.nazwa_jednostki=nazwa_jednostki;end; local naglowek=czy_nie_dolne_myslniki and mw.ustring.match(nazwa_jednostki,"^[^#]*#[%s_]*(.-)[%s_]*$") or mw.ustring.match(nazwa_jednostki,"^[^#]*#(.-)%s*$"); naglowek=parametry_modul["Odstępy"]{[1]=naglowek,[2]="tak",[3]=((not czy_nie_dolne_myslniki)and "tak" or nil),}; return naglowek; end; p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_jednostki=PobierzParametr("nazwa jednostki") or PobierzParametr("strona") or PobierzParametr(1); czy_naprawiaj=PobierzParametr("czy naprawiać") or PobierzParametr(2) or czy_naprawiaj; czy_naprawiaj=parametry_modul.CzyTak(czy_naprawiaj); if(not nazwa_jednostki)then return;end; nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.nazwa_jednostki or p.DecodeHtml(nazwa_jednostki,true); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.nazwa_jednostki))then tabela_nazw_adresu.nazwa_jednostki=nazwa_jednostki;end; if(czy_naprawiaj)then local bez_naglowka=tabela_nazw_adresu and tabela_nazw_adresu.bez_naglowka or mw.ustring.gsub(nazwa_jednostki,"^[%s_]*([^#]-)[%s_]*#(.*)$","%1"); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.bez_naglowka))then tabela_nazw_adresu.bez_naglowka=bez_naglowka;end; local parametry=mw.ustring.match(bez_naglowka,"^.-%?*%?[%s_]*([^&]+=[^&]-.-)[%s_]*$"); if(parametry)then parametry=mw.ustring.gsub(parametry,"[%s_]*=[%s_]*","=") or nil; parametry=mw.ustring.gsub(parametry,"[%s_]*&[%s_]*","&") or nil; end; return parametry; else local bez_naglowka=tabela_nazw_adresu and tabela_nazw_adresu.bez_naglowka or mw.ustring.gsub(nazwa_jednostki,"^([^#]-)#(.*)$","%1"); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.bez_naglowka))then tabela_nazw_adresu.bez_naglowka=bez_naglowka;end; local parametry=mw.ustring.match(bez_naglowka,"^.-%?*%?([^&]+=[^&]-.-)%s*$"); return parametry; end; end; p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_jednostki=PobierzParametr("nazwa jednostki") or PobierzParametr("strona") or PobierzParametr(1); czy_naprawiaj=PobierzParametr("czy naprawiać") or PobierzParametr(2) or czy_naprawiaj; czy_naprawiaj=parametry_modul.CzyTak(czy_naprawiaj); if(not nazwa_jednostki)then return;end; nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.nazwa_jednostki or p.DecodeHtml(nazwa_jednostki,true); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.nazwa_jednostki))then tabela_nazw_adresu.nazwa_jednostki=nazwa_jednostki;end; if(czy_naprawiaj)then nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.bez_naglowka or mw.ustring.gsub(nazwa_jednostki,"^[%s_]*([^#]-)[%s_]*#(.*)$","%1"); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.bez_naglowka))then tabela_nazw_adresu.bez_naglowka=nazwa_jednostki;end; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.-%?*)[%s_]*%?[^&]+=[^&]*.*$","%1"); else nazwa_jednostki=tabela_nazw_adresu and tabela_nazw_adresu.bez_naglowka or mw.ustring.gsub(nazwa_jednostki,"^([^#]-)#(.*)$","%1"); if((tabela_nazw_adresu)and(not tabela_nazw_adresu.bez_naglowka))then tabela_nazw_adresu.bez_naglowka=nazwa_jednostki;end; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.-%?*)%?[^&]+=[^&]*.*$","%1"); end; local strony_modul=require("Module:Strony"); local czy_url=strony_modul.SprawdzanieURL(nazwa_jednostki); czy_url=czy_url and true or (not czy_naprawiaj); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",[3]=czy_url and true or false,}; return nazwa_jednostki; end; p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local parametry_strony=PobierzParametr("parametry") or PobierzParametr(1); czy_naprawiaj=PobierzParametr("czy naprawiać") or PobierzParametr(2) or czy_naprawiaj; czy_naprawiaj=parametry_modul.CzyTak(czy_naprawiaj); if(parametry_modul.CzyTak(parametry_strony))then local nazwa_strony_linku; if(czy_naprawiaj)then if(mw.ustring.match(parametry_strony,"^[%s_]*title[%s_]*=[^&]*"))then nazwa_strony_linku=mw.ustring.match(parametry_strony,"^[%s_]*title[%s_]*=([^&]+)&?.*$"); parametry_strony=mw.ustring.gsub(parametry_strony,"^[%s_]*title[%s_]*=([^&]+)&?",""); elseif(mw.ustring.match(parametry_strony,"&[%s_]*title[%s_]*=[^&]*"))then nazwa_strony_linku=mw.ustring.match(parametry_strony,"&[%s_]*title[%s_]*=([^&]+)&?.*$"); parametry_strony=mw.ustring.gsub(parametry_strony,"&[%s_]*title[%s_]*=([^&]+).*$",""); end; else if(mw.ustring.match(parametry_strony,"^title=[^&]*"))then nazwa_strony_linku=mw.ustring.match(parametry_strony,"^title=([^&]+)&?.*$"); parametry_strony=mw.ustring.gsub(parametry_strony,"^title=([^&]+)&?",""); elseif(mw.ustring.match(parametry_strony,"&title=[^&]*"))then nazwa_strony_linku=mw.ustring.match(parametry_strony,"&title=([^&]+)&?.*$"); parametry_strony=mw.ustring.gsub(parametry_strony,"&title=([^&]+).*$",""); end; end; nazwa_strony_linku=parametry_modul["Odstępy"]{[1]=nazwa_strony_linku,[2]="tak",[3]=(not czy_naprawiaj),}; return nazwa_strony_linku,parametry_strony; else return nil; end; end; p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_jednostki=PobierzParametr("nazwa jednostki") or PobierzParametr("strona") or PobierzParametr(1); czy_naprawiaj=PobierzParametr("czy naprawiać") or PobierzParametr(2) or czy_naprawiaj; czy_naprawiaj=parametry_modul.CzyTak(czy_naprawiaj); local tabela_nazw_adresu=tabela_nazw_adresu or {}; local adres=p["NazwaStronyAdresu"](nazwa_jednostki,(czy_naprawiaj)and true or nil,tabela_nazw_adresu); local parametry_strony=p["ParametryStronyAdresu"](nazwa_jednostki,(czy_naprawiaj)and true or nil,tabela_nazw_adresu); local naglowek_strony=p["NagłówekStronyAdresu"](nazwa_jednostki,(czy_naprawiaj)and true or nil,tabela_nazw_adresu); nazwa_jednostki=adres..(parametry_strony and ("?"..parametry_strony) or "")..(naglowek_strony and ("#"..naglowek_strony) or ""); return nazwa_jednostki; end; function p.URLStrona(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local url=PobierzParametr("url") or PobierzParametr(1); local z_ukosnikiem=parametry_modul.CzyTak(PobierzParametr("ukośnik") or PobierzParametr(2)); local serwer,nazwa=mw.ustring.match(url,"^//+([^%s/]+)"..((z_ukosnikiem) and "/+" or "").."(/?.-)$"); return serwer,nazwa; end; p["UrlBezProtokołu"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local url=PobierzParametr("url") or PobierzParametr(1); local mail=mw.ustring.match(url,"^.*@([^@]+)$"); if(mail)then return "//"..mail,"mail",1; end; local protokol,strona=mw.ustring.match(url,"^(%a+:)(/+.-)$"); if((protokol)and(strona))then strona=mw.ustring.gsub(strona,"^(/+)","//"); return strona,protokol,2; end; local strona=mw.ustring.match(url,"^:?(/+.-)$"); if(strona)then strona=mw.ustring.gsub(strona,"^(/+)","//"); return strona,nil,3; end; return "//"..url,nil,-1; end; function p.DecodeKoduHTMLZnaku(tekst) local html_dane_modul=mw.loadData("Module:Html/dane"); local kody_literowe_html_i_ich_odpowiedniki_znakowe=html_dane_modul.kody_literowe_html_i_ich_odpowiedniki_znakowe; -- najpierw nazwane encje local ile1; tekst,ile1 = mw.ustring.gsub(tekst,"(&%a+%;)", kody_literowe_html_i_ich_odpowiedniki_znakowe); -- encje numeryczne dziesiętne: &#956; local ile2; tekst,ile2=mw.ustring.gsub(tekst,"&#(%d+);", function(n) return mw.ustring.char(tonumber(n)) end); -- encje numeryczne szesnastkowe: &#x3BC; local ile3; tekst,ile3 = mw.ustring.gsub(tekst,"&#x(%x+);", function(n) return mw.ustring.char(tonumber(n, 16)) end); return tekst,ile1,ile2,ile3; end; function p.ZamianaEncodeTekst(tekst) tekst=mw.uri.encode(mw.uri.decode(tekst,"PATH"),"PATH"); return tekst; end; function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor,funkcja) tekst=mw.ustring.gsub(tekst,wzor,function(tekst) tekst=funkcja(tekst); return tekst; end); return tekst; end; function p.StronaParametryIdentyfikacjaAdresuHtml(adres) local ile_w;local ile; adres,ile_w,ile=p.EncodeHashKoduHtmlTekstu(adres); local ile1;local ile2; if(ile_w>0)then adres,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(adres); end; local strona,naglowek=mw.ustring.match(adres,"^[%s_]*([^#]-)[%s_]*#[%s_]*(.-)[%s_]*$"); if((not strona)or(not naglowek))then strona=mw.ustring.match(adres,"^[%s_]*(.-)[%s_]*$"); end; local __strona,parametry=mw.ustring.match(strona,"^(.-%?*)%?([^&=]-=.*)$"); strona=__strona or strona; if(ile_w>0)then strona=p.DecodeHashKoduHtmlTekstu(p.DecodeTempHashKoduHtmlTekstu(strona,ile1,ile2),ile); parametry=parametry and p.DecodeHashKoduHtmlTekstu(p.DecodeTempHashKoduHtmlTekstu(parametry,ile1,ile2),ile) or nil; naglowek=naglowek and p.DecodeHashKoduHtmlTekstu(p.DecodeTempHashKoduHtmlTekstu(naglowek,ile1,ile2),ile) or nil; end; return strona,parametry,naglowek; end; function p.TworzenieAdresuHtml(strona,parametry,naglowek) local adres=strona..(parametry and ("?"..parametry) or "")..((naglowek)and ("#"..naglowek) or ""); return adres; end; function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek,funkcja_operacji) local SprawdzanieFuncTekst=function(tekst) local spacja=" _\t";local interpunkcja="%,%.%:%?%!%(%)%;";local adres="%\\%/";local hash="%#"; local regex="^[%a%d"..spacja..interpunkcja..adres..hash.."]*$"; return mw.ustring.match(tekst,regex); end; local czy_adres=SprawdzanieFuncTekst(adres); if(czy_adres)then return adres;end; local strona,parametry,naglowek=p.StronaParametryIdentyfikacjaAdresuHtml(adres); strona=funkcja_strona and funkcja_strona(strona,funkcja_operacji and funkcja_operacji[1] or nil) or strona; parametry=(parametry and funkcja_parametry) and funkcja_parametry(parametry,funkcja_operacji and funkcja_operacji[2] or nil) or parametry; naglowek=(naglowek and funkcja_naglowek) and funkcja_naglowek(naglowek,funkcja_operacji and funkcja_operacji[3] or nil) or naglowek; local adres=p.TworzenieAdresuHtml(strona,parametry,naglowek); return adres; end; function p.EncodeParametryURL(adres,w_adresie,funkcja_strona,funkcja_naglowek) local function EncodeParametryURL(a,b,c,funkcja_operacji) return a..funkcja_operacji(b).."="..funkcja_operacji(c); end; local function OperacjeHtml(adres,funkcja_operacji) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",function(a,b,c)return EncodeParametryURL(a,b,c,funkcja_operacji);end); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",function(a,b,c)return EncodeParametryURL(a,b,c,funkcja_operacji);end); return adres; end; local funkcja_operacji={ [1]=function(tekst) return p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,"[^/]+",p.ZamianaEncodeTekst); end, [2]=function(tekst) return p.ZamianaEncodeTekst(tekst); end, [3]=function(tekst) return p.ZamianaEncodeTekst(tekst); end, }; if(not w_adresie)then return OperacjeHtml(adres,funkcja_operacji[2]); else return p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,OperacjeHtml,funkcja_naglowek,funkcja_operacji); end; end; function p.EncodeZaawansowanyParametryURL(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek) local KrokEncodeZaawansowanyParametryURLABC=function(a) a=mw.uri.decode(a,"PATH"); a=p.EncodeSpecjalneZnakiHtml(a,true); if(z_kodowaniem)then a=mw.uri.encode(a,"PATH");end; return a; end; function EncodeZaawansowanyParametryURL(a,b,c,funkcja_operacji) b=mw.uri.decode(b,"PATH");b=funkcja_operacji(b,true);b=mw.uri.encode(b,"PATH"); c=mw.uri.decode(c,"PATH");c=funkcja_operacji(c,true);c=mw.uri.encode(c,"PATH"); return a..(b.."="..c); end; local function OperacjeURL(adres,funkcja_operacji) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",function(a,b,c)return EncodeZaawansowanyParametryURL(a,b,c,funkcja_operacji);end); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",function(a,b,c)return EncodeZaawansowanyParametryURL(a,b,c,funkcja_operacji);end); return adres; end; local funkcja_operacji={ [1]=function(tekst) return p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,"[^/]+",KrokEncodeZaawansowanyParametryURLABC); end, [2]=function(tekst) return KrokEncodeZaawansowanyParametryURLABC(tekst); end, [3]=function(tekst) return KrokEncodeZaawansowanyParametryURLABC(tekst); end, }; if(not w_adresie)then return OperacjeURL(adres,funkcja_operacji[2]); else return p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,OperacjeURL,funkcja_naglowek,funkcja_operacji); end; end; function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek) local EncodeHtmlAB=function(a,b,c,funkcja_operacji) b=funkcja_operacji(b);c=funkcja_operacji(c); return a..b.."="..c; end; local function ParametryHtml(parametr,funkcja_operacji) parametr=mw.ustring.gsub(parametr,"^(%??)([^&=]*)=([^&]*)",function(a,b,c)return EncodeHtmlAB(a,b,c,funkcja_operacji);end); parametr=mw.ustring.gsub(parametr,"(&)([^&=]*)=([^&]*)",function(a,b,c)return EncodeHtmlAB(a,b,c,funkcja_operacji);end); return parametr; end; local funkcja_operacji={ [1]=function(tekst) return p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,"[^/]+",p.EncodeHtml); end, [2]=function(tekst) return p.EncodeHtml(tekst); end, [3]=function(tekst) return p.EncodeHtml(tekst); end, }; if(not w_adresie)then return ParametryHtml(parametr,funkcja_operacji[2]); else return p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(parametr,funkcja_strona,ParametryHtml,funkcja_naglowek,funkcja_operacji); end; end; function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek) local KrokEncodeZaawansowanyParametryHtmlABC=function(a) a=mw.uri.decode(a,"PATH"); a=p.EncodePodstawoweHtmlTekstu(a); if(z_kodowaniem)then a=mw.uri.encode(a,"PATH");end; return a; end; local EncodeZaawansowanyParametryHtmlABC=function(a,b,c,funkcja_operacji) b=funkcja_operacji(b); c=funkcja_operacji(c); return (a or "")..(b.."="..c); end; local function OperacjeParametryHtmlABC(adres,funkcja_operacji) adres=mw.ustring.gsub(adres,"^(%??)([^&=]-)=([^&]*)",function(a,b,c)return EncodeZaawansowanyParametryHtmlABC(a,b,c,funkcja_operacji);end); adres=mw.ustring.gsub(adres,"([&])([^&=]-)=([^&]*)",function(a,b,c)return EncodeZaawansowanyParametryHtmlABC(a,b,c,funkcja_operacji);end); return adres; end; local funkcja_operacji={ [1]=function(tekst) return p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,"[^/]+",KrokEncodeZaawansowanyParametryHtmlABC); end, [2]=function(tekst) return KrokEncodeZaawansowanyParametryHtmlABC(tekst); end, [3]=function(tekst) return KrokEncodeZaawansowanyParametryHtmlABC(tekst); end, }; if(not w_adresie)then return OperacjeParametryHtmlABC(adres,funkcja_operacji[2]); else return p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,OperacjeParametryHtmlABC,funkcja_naglowek,funkcja_operacji); end; end; function p.EncodeHashKoduHtmlTekstu(tekst) local ile;local ile2=0; tekst,ile=mw.ustring.gsub(tekst,"&([^&;%s]+);",function(kod) if((kod=="num")or(kod=="#35")or(kod=="#x23"))then ile2=ile2+1; return "&amp;num;"; end; return nil; end); return tekst,ile,ile2; end; function p.DecodeHashKoduHtmlTekstu(tekst,ile) if(((ile)and(ile>0))or(not ile))then tekst=mw.ustring.gsub(tekst,"&amp;num;",function(kod) return "&#35;"; end); end; return tekst; end; function p.EncodeTempHashKoduHtmlTekstu(tekst) local ile1;local ile2; tekst,ile1=mw.ustring.gsub(tekst,"&#(%d+);",function(kod) return "&&num;"..kod..";"; end); tekst,ile2=mw.ustring.gsub(tekst,"&#x(%x+);",function(kod) return "&&num;x"..kod..";"; end); return tekst,ile1,ile2; end; function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2) if(((ile1)and(ile1>0))or(not ile1))then tekst=mw.ustring.gsub(tekst,"&&num;(%d+);",function(kod) return "&#"..kod..";" end); end; if(((ile2)and(ile2>0))or(not ile2))then tekst=mw.ustring.gsub(tekst,"&&num;x(%x+);",function(kod) return "&#x"..kod..";" end); end; return tekst; end; function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny) local adres=p.EncodeParametryURL(adres,true, function(strona,Func) if(protokolarny)then local adres,protokol=p["UrlBezProtokołu"](strona); adres=Func(adres); adres=(protokol or "")..adres; return adres; else return Func(strona); end; end, function(naglowek,Func) naglowek=Func(naglowek); return naglowek; end); return adres; end; function p.UriEncode(frame) local parametry_modul=require("Module:Parametry"); local html=parametry_modul.PobierzParametryRamki(frame)("html"); html=mw.ustring.gsub(html,"^(%a+://)(.+)$",function(prot,strona) return prot..p.AdresDomniemanieBezProtokolarnyEncodeURL(strona,false); end); return html; end; function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony) elementy_adresu_strony=p.KodowanieOmijanieFunkcyjne(elementy_adresu_strony,true,"&(#35);",function(elementy_adresu_strony) elementy_adresu_strony=p.DecodeKoduHTMLZnaku(elementy_adresu_strony); return elementy_adresu_strony; end); elementy_adresu_strony=p.EncodeSpecjalneZnakiHtml(elementy_adresu_strony,true); return elementy_adresu_strony; end; function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem) if(czy_parametry_strony)then elementy_adresu_strony=p.EncodeZaawansowanyParametryHtml(elementy_adresu_strony,z_kodowaniem); else elementy_adresu_strony=mw.uri.decode(elementy_adresu_strony,"PATH"); elementy_adresu_strony=p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony); if(z_kodowaniem)then elementy_adresu_strony=mw.uri.encode(elementy_adresu_strony,"PATH");end; end; return elementy_adresu_strony; end; function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny) local parametry_modul=require("Module:Parametry") local PobierzParametry=parametry_modul.PobierzParametryRamki(frame); local html=PobierzParametry("html"); local z_kodowaniem_html=PobierzParametry("encode"); if(z_kodowaniem_html)then z_kodowaniem=parametry_modul.CzyTak(z_kodowaniem_html);end; local html=p.EncodeZaawansowanyParametryHtml(html,z_kodowaniem,true, function(strona,Func) if(protokolarny)then local adres,protokol=p["UrlBezProtokołu"](strona); adres=Func(adres); adres=(protokol or "")..adres; return adres; else return Func(strona); end; end, function(naglowek,Func) naglowek=Func(naglowek); return naglowek; end); return html; end; return p; dm2dji9fnzr49cyffsi6kdhrl26eja2 Szablon:Znacznik/przykłady.css 10 56646 553351 500755 2026-08-27T21:05:30Z Persino 2851 553351 sanitized-css text/css /* ----------------------------------------------------------------------------------------------------------------------------- */ /* Style przykładowe do szablonu [[Szablon:Znacznik]] i szablonów w oparciu o niego zbudowane oraz do niego podobnych start */ /* Style potrzebne do zaprezentowania różnych aspektów szablonów opartych o style (style), klasy (class) i identyfikatory (id) */ /* ----------------------------------------------------------------------------------------------------------------------------- */ .czcionka, #przykład_czciona, #przykład, #przykład1{ font-family:sans-serif; font-size:1.2em; line-height:1.4em; } .kolor, #przykład_kolor, #przykład, #przykład1{ color:darkslategray; } .tło, #przykład_tło, #przykład, #przykład2{ background-color:ivory; } .obramowanie, #przykład_obramowanie, #przykład, #przykład2{ border:darkblue 1px solid; } .potomek_czcionka, #potomek__czciona, #potomek_przykład, #potomek_przykład1{ font-size:12px; } .potomek_kolor, #potomek_przykład_kolor, #potomek_przykład, #potomek_przykład1{ color:blue; } .potomek_tło, #potomek_przykład_tło, #potomek_przykład, #potomek_przykład2{ background:yellow; } .potomek_obramowanie, #potomek_przykład_obramowanie, #potomek_przykład, #potomek_przykład2{ border:green 1px solid; } /* koniec */ /*{{Kategoria|Szablony - arkusze stylów}}*/ j3cewx77whbebo0yss79vhh44jmz4l2 Szablon:Bdo/opis 10 58869 553349 517350 2026-08-27T20:45:21Z Persino 2851 /* Użycie */ 553349 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Znacznik liniowy umieszczany w tekście, pozwalający nadać temu elementowi pewne cechy kierunku układania tekstu od lewej do prawej lub odwrotnie, do tego szablonu jest bardzo potrzebny parametr: {{Parametr|styl|direction:ltr}} lub {{Parametr|styl|direction:rtl}}. To jest oparte na obsłudze tagów: {{Tag|bdo}} (jest to element liniowy) - (tagi języka HTML), oraz identyfikatorów: {{Code|id}}, styli: {{Code|style}} (właściwości i ich zawartości przedstawiający język CSS), klas: {{Code|class}} (reguł w kaskadowych arkuszach stylów) i atrybutów (inne niż: {{Code|id}}, {{Code|style}} i {{Code|class}}), elementu HTML. Użycie: {{s|Bdo|kod}}, gdy w kodzie znajdują się znaki "=", to w nim należy stosować szablon {{s|{{=}}}}. Tekst jest umieszczany, wewnątrz tego szablonu, pomiędzy tymi tagami. == Opis parametrów == ; Wywołanie {{Pre|{{s|Bdo|1{{=}}|id{{=}}|styl{{=}}|klasa{{=}}|atrybuty{{=}}}}}} Szablon {{s|Bdo}}, przyjmuje argumenty, którego wartości wraz z odpowiednimi nazwami, oprócz zmiennej {{Code|1}}, w nim, wsadza on do tagu, coś w rodzaju: {{Tag|tag|parametry=nazwa="wartość"}}, obsługiwanego przez niego znacznika, przez którego on jest oparty, a oto lista tych zmiennych poniżej. ; Parametry * {{Code|1}} - zawartość tekstu pomiędzy znacznikami - wymagany, * {{Code|id}} - unikatowy identyfikator, znacznika - sugerowany, * {{Code|styl}} - styl CSS znacznika - właściwości i ich wartości - opcjonalny, * {{Code|klasa}} - reguły CSS, do klasy znacznika, czyli zbioru właściwości i ich wartości - opcjonalny, * {{Code|atrybuty}} - atrybuty znacznika (inne niż: {{Code|id}}, {{Code|styl}} i {{Code|class}}) - opcjonalny. ---- Powyższe parametry oprócz pierwszego są opcjonalne za wyjątkiem parametru: {{Code|id}}, który jest sugerowany. == Wikikod, zbudowany za pomocą szablonu znaczników (kombajnu) == Szablon {{s|Bdo}} ma kod w zależności od znacznika: {{s|Znacznik}}, przedstawiający się: ; Szablon {{s|Bdo}} {{PreWikikod|Bdo}} == Przykłady == Najprostszym możliwym przypadkiem jest nieużycie żadnego parametry tego szablonu. ;Przykład {{Pre|Oto jest tekst przed tym szablonem: {{s|Bdo|Oto jest tekst do analizy}}, a tutaj po.}} ;Wynik {{Pre|Oto jest tekst przed tym szablonem: {{Bdo|Oto jest tekst do analizy}}, a tutaj po.}} === Tabelka z przykładami dla szablonu: {{s|Bdo}}, czyli przy znaczniku: {{Tag|bdo}}=== Style są w oparciu o kaskadowe arkusze stylów, które są napisane w stylach przykładów: {{ls2|Znacznik/przykłady.css}}. W poniższych przykładach należy pamiętać o napisaniu: {{ŹródłoXml|{{Mniejszy}}templatestyles src{{=}}"Szablon:Znacznik/przykłady.css" /{{Większy}}}} Zatem: <templatestyles src="Szablon:Znacznik/przykłady.css" /> {{Tabela przykładów użycia szablonów| {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;font-family:sans-serif;font-size:1.2em;line-height:1.4em;;color:darkslategray;background-color:ivory;border:darkblue 1px solid;}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;=color:darkslategray;background-color:ivory;border:darkblue 1px solid;|3=klasa=czcionka}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;color:darkslategray;|3=klasa=czcionka|4=id=przykład2}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;|3=klasa=tło obramowanie|4=id=przykład1}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;|3=klasa=czcionka kolor tło obramowanie}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;|3=id=przykład}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;font-size:1.2em;color:darkslategray;background-color:ivory;border:darkblue 1px solid;}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;=color:darkslategray;background-color:ivory;border:darkblue 1px solid;|3=klasa=czcionka}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;color:darkslategray;|3=klasa=czcionka|4=id=przykład2}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;|3=klasa=tło obramowanie|4=id=przykład1}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;|3=klasa=czcionka kolor tło obramowanie}} {{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;|3=id=przykład}} }} Widzimy w powyższej tabelce, że niezależnie jak napiszemy znacznik: {{Tag|bdo}}, to wynik otrzymujemy taki sam, a to rozplanowanie stylów zrobiliśmy poprzez rozdzielenie stylów pomiędzy atrybutami: {{Code|style}}, {{Code|class}} lub {{Code|id}}. == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Tekst, któremu można nadać pewne cechy.", "type": "string", "required": true }, "styl": { "description": "Styl CSS, właściwości i ich wartości.", "type": "string" }, "klasa": { "description": "Reguły CSS, do klasy, kaskadowych arkuszy stylów.", "type": "string" }, "id": { "description": "Unikatowy identyfikator.", "type": "string", "suggested": true }, "atrybuty": { "description": "Atrybuty, inne niż: id, style i class.", "type": "string" } }, "paramOrder": [ "1", "id", "styl", "klasa", "atrybuty" ], "description": "Szablon nadającej tekstowi, w tekście, pewne cechy, za pomocą stylów, w elemencie: <span>...</span>." } </templatedata> == Zobacz też == * {{s|Znacznik}} - szablon, o który ten szablon, jest zbudowany, w oparciu o element liniowy: {{Tag|span}}, o tekście umieszczanego, wewnątrz tego szablonu, pomiędzy tymi tagami. {{Szablony ramek formułujące kod}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony do formatowania tekstu | Szablony ramek tworzące kod HTML | Szablony znaczników }} </includeonly> ktgsguqybrfrtjvb0kvitnisne8vi0g Moduł:Szablonowe 828 58954 553369 551776 2026-08-28T10:23:33Z Persino 2851 553369 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; local function FunkcjaPobieraniaTekstuSzablonuStrony(pelna_nazwa_szablonu,__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,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,dwukropek,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,(dwukropek and ":" or "")..nazwa_modulu_aktualna_czy_biezaca,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,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; else tekst=FunkcjaPobieraniaTekstuSzablonuStrony(pelna_nazwa_szablonu,__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,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,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,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 nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); 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,dwukropek,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,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 nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); 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,dwukropek,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,__FUNKCJA,__FUNKCJA2) local czy_kody_w_nazwa=mw.ustring.match(nazwa,p.NormaWzoruKodowaniaTekstu("SZABLON")); 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; local html_modul=require("Module:Html"); nazwa=html_modul.DecodeHtml(nazwa,true); local rezultat=nil; if(__FUNKCJA)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 (not rezultat)) and (__FUNKCJA2(nazwa,tabela_modyfikatorow) or nazwa) or nazwa; if(not tabela_modyfikatorow)then nazwa=html_modul.EncodeId(nazwa); return nazwa; 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["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; 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=mw.ustring.match(czy_szablon,"^%s*[^:]"); 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; 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,__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*%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,__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_aktualna_czy_biezaca,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_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 local tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,nil,nil,tablica_danych_parametrow_szablonu_strony,kod); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then 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; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,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,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,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,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; for _,value in ipairs(tab_inna_tabelka)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,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,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,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,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,100); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguMath(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,101); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,102); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,103); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,104); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguGallery(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,105); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguImageMap(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,106); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguInputBox(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,107); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguQuiz(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,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); 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; p21kapvwc5nywb7nhq5swkz8b2z1vsc 553370 553369 2026-08-28T10:31:15Z Persino 2851 553370 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; local function FunkcjaPobieraniaTekstuSzablonuStrony(pelna_nazwa_szablonu,__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,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,dwukropek,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,(dwukropek and ":" or "")..nazwa_modulu_aktualna_czy_biezaca,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,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; else tekst=FunkcjaPobieraniaTekstuSzablonuStrony(pelna_nazwa_szablonu,__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,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,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,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 nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); 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,dwukropek,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,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 nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); 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,dwukropek,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,__FUNKCJA,__FUNKCJA2) local 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; local html_modul=require("Module:Html"); nazwa=html_modul.DecodeHtml(nazwa,true); local rezultat=nil; if(__FUNKCJA)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 (not rezultat)) and (__FUNKCJA2(nazwa,tabela_modyfikatorow) or nazwa) or nazwa; if(not tabela_modyfikatorow)then nazwa=html_modul.EncodeId(nazwa); return nazwa; 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["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; 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=mw.ustring.match(czy_szablon,"^%s*[^:]"); 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; 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,__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*%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,__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_aktualna_czy_biezaca,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_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 local tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,nil,nil,tablica_danych_parametrow_szablonu_strony,kod); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then 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; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,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,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,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,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; for _,value in ipairs(tab_inna_tabelka)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,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,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,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,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,100); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguMath(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,101); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,102); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,103); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,104); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguGallery(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,105); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguImageMap(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,106); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguInputBox(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,107); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguQuiz(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,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); 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; 9u5lqu18zt395vryaa1hve3nmgxihv8 553371 553370 2026-08-28T10:45:10Z Persino 2851 553371 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; local function FunkcjaPobieraniaTekstuSzablonuStrony(pelna_nazwa_szablonu,__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,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,dwukropek,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,(dwukropek and ":" or "")..nazwa_modulu_aktualna_czy_biezaca,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,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; else tekst=FunkcjaPobieraniaTekstuSzablonuStrony(pelna_nazwa_szablonu,__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,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,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,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 nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); 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,dwukropek,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,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 nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); 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,dwukropek,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,__FUNKCJA,__FUNKCJA2) local 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; 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; 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["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; 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=mw.ustring.match(czy_szablon,"^%s*[^:]"); 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; 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,__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*%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,__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_aktualna_czy_biezaca,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_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 local tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,nil,nil,tablica_danych_parametrow_szablonu_strony,kod); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then 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; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,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,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,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,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; for _,value in ipairs(tab_inna_tabelka)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,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,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,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,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,100); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguMath(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,101); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,102); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,103); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,104); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguGallery(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,105); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguImageMap(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,106); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguInputBox(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,107); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguQuiz(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,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); 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; ppwgwij6c7fn11tkxtyr06207phredh 553372 553371 2026-08-28T10:57:29Z Persino 2851 553372 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; local function FunkcjaPobieraniaTekstuSzablonuStrony(pelna_nazwa_szablonu,__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,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,dwukropek,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,(dwukropek and ":" or "")..nazwa_modulu_aktualna_czy_biezaca,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,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; else tekst=FunkcjaPobieraniaTekstuSzablonuStrony(pelna_nazwa_szablonu,__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,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,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,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 nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); 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,dwukropek,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,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 nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); 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,dwukropek,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,__FUNKCJA,__FUNKCJA2) local 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; 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["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; 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=mw.ustring.match(czy_szablon,"^%s*[^:]"); 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; 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,__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*%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,__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_aktualna_czy_biezaca,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_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 local tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,nil,nil,tablica_danych_parametrow_szablonu_strony,kod); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then 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; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,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,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,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,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; for _,value in ipairs(tab_inna_tabelka)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,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,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,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,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,100); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguMath(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,101); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,102); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,103); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,104); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguGallery(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,105); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguImageMap(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,106); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguInputBox(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,107); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguQuiz(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,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); 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; 8ej8p74nc8ppeyvfjwf6h99cv03j238 553373 553372 2026-08-28T11:06:22Z Persino 2851 553373 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; local function FunkcjaPobieraniaTekstuSzablonuStrony(pelna_nazwa_szablonu,__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,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,dwukropek,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,(dwukropek and ":" or "")..nazwa_modulu_aktualna_czy_biezaca,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,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; else tekst=FunkcjaPobieraniaTekstuSzablonuStrony(pelna_nazwa_szablonu,__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,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,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,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 nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); 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,dwukropek,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,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 nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); 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,dwukropek,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,__FUNKCJA,__FUNKCJA2) local 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; 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["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; 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=mw.ustring.match(czy_szablon,"^%s*[^:]"); 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; 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,__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*%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,__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_aktualna_czy_biezaca,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_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 local tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,nil,nil,tablica_danych_parametrow_szablonu_strony,kod); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then 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; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,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,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,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,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; for _,value in ipairs(tab_inna_tabelka)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,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,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,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,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,100); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguMath(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,101); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,102); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,103); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,104); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguGallery(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,105); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguImageMap(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,106); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguInputBox(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,107); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguQuiz(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,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); 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; kd675z6ublm6vbg7kuw13h2vulp1zgb Szablon:Font 10 61098 553354 527907 2026-08-27T21:37:43Z Persino 2851 553354 wikitext text/x-wiki <includeonly><!-- -->{{Znacznik | tag = span | id = {{{id|}}} | styl = {{Jeśli niepuste|{{{face|}}}|przed lewy=font-family:|po lewy=;}} {{Jeśli niepuste|{{#if:{{{size|}}}|{{#if:{{#invoke:Parametry|Or |{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]?%d+$}} |{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]?%d+%.%d*$}} |{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]?%d*%.%d+$}} }} |{{#switch:{{Maksimum | 1 = 1 | 2 = {{Minimum | 1 = 7 | 2 = {{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}} |{{#expr:floor({{{size|inherit}}}+3)}} |{{#expr:floor({{{size|inherit}}})}} }} }} }} | 1 = {{#expr:2*({{Maksimum|1|{{Minimum|2|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-1)+8}}px | 2 = {{#expr:2*({{Maksimum|2|{{Minimum|3|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-2)+10}}px | 3 = {{#expr:2*({{Maksimum|3|{{Minimum|4|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-3)+12}}px | 4 = {{#expr:4*({{Maksimum|4|{{Minimum|5|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-4)+14}}px | 5 = {{#expr:6*({{Maksimum|5|{{Minimum|6|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-5)+18}}px | 6 = {{#expr:12*({{Maksimum|6|{{Minimum|7|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-6)+24}}px | 7 = 36px |#default={{{size|inherit}}} }} |{{#if:{{#invoke:Parametry|Or |1={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%+%-]?%d+%.?%d*%s*%a+$}} |2={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%+%-]?%.%d+%s*(%a+)$}} |3={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^%d+%.?%d*%s*(%%)$}} |4={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^%.%d+%s*(%%)$}} }} |{{{size|inherit}}} |{{#switch:{{{size|inherit}}}|inherit|unset|imitial|xx-small|x-small|small|medium|large|x-large|xx-large={{{size|inherit}}}|#default={{{size|inherit}}}em}} }} }}|}}|przed lewy=font-size:|po lewy=;}} {{Jeśli niepuste|{{{weight|}}}|przed lewy=font-weight:|po lewy=;}} {{Jeśli niepuste|{{{variant|}}}|przed lewy=font-variant:|po lewy=;}} {{Jeśli niepuste|{{{style|}}}|przed lewy=font-style:|po lewy=;}} {{Jeśli niepuste|{{{line|}}}|przed lewy=line-height:|po lewy=;}} {{Jeśli niepuste|{{{color|}}}|przed lewy=color:|po lewy=;}} {{Jeśli niepuste|{{{spacing|}}}|przed lewy=letter-spacing:|po lewy=;}} {{Jeśli niepuste|{{{background|}}}|przed lewy=background-color:|po lewy=;}} {{Jeśli niepuste|{{{border|}}}|przed lewy={{#switch:{{{border|transparent}}}|transparent|initial|unset|=0|1px}} solid&#32;|po lewy=;}} {{Jeśli niepuste|{{{display|}}}|przed lewy=display:|po lewy=;}} {{{styl|}}} | klasa = span-font {{{klasa|}}} | atrybuty = {{{atrybuty|}}} |<templatestyles src="Szablon:Font/styles.css" /><!-- -->{{{1}}}<!-- -->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 9ho6m3ljyo9fics987ronaxvnnj8yrc 553357 553354 2026-08-27T21:52:33Z Persino 2851 553357 wikitext text/x-wiki <includeonly><!-- -->{{Znacznik | tag = span | id = {{{id|}}} | styl = {{Jeśli niepuste|{{{face|}}}|przed lewy=font-family:|po lewy=;}} {{Jeśli niepuste|{{#if:{{{size|}}}|{{#if:{{#invoke:Parametry|Or |{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]?%d+$}} |{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]?%d+%.%d*$}} |{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]?%d*%.%d+$}} }} |{{#switch:{{Maksimum | 1 = 1 | 2 = {{Minimum | 1 = 7 | 2 = {{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}} |{{#expr:floor({{{size|inherit}}}+3)}} |{{#expr:floor({{{size|inherit}}})}} }} }} }} | 1 = {{#expr:2*({{Maksimum|1|{{Minimum|2|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-1)+8}}px | 2 = {{#expr:2*({{Maksimum|2|{{Minimum|3|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-2)+10}}px | 3 = {{#expr:2*({{Maksimum|3|{{Minimum|4|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-3)+12}}px | 4 = {{#expr:4*({{Maksimum|4|{{Minimum|5|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-4)+14}}px | 5 = {{#expr:6*({{Maksimum|5|{{Minimum|6|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-5)+18}}px | 6 = {{#expr:12*({{Maksimum|6|{{Minimum|7|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-6)+24}}px | 7 = 36px |#default={{{size|inherit}}} }} |{{#if:{{#invoke:Parametry|Or |1={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%+%-]?%d+%.?%d*%s*%a+$}} |2={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%+%-]?%.%d+%s*(%a+)$}} |3={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^%d+%.?%d*%s*(%%)$}} |4={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^%.%d+%s*(%%)$}} }} |{{{size|inherit}}} |{{#switch:{{{size|inherit}}}|inherit|unset|imitial|xx-small|x-small|small|medium|large|x-large|xx-large={{{size|inherit}}}|#default={{{size|inherit}}}em}} }} }}|}}|przed lewy=font-size:|po lewy=;}} {{Jeśli niepuste|{{{weight|}}}|przed lewy=font-weight:|po lewy=;}} {{Jeśli niepuste|{{{variant|}}}|przed lewy=font-variant:|po lewy=;}} {{Jeśli niepuste|{{{style|}}}|przed lewy=font-style:|po lewy=;}} {{Jeśli niepuste|{{{line|}}}|przed lewy=line-height:|po lewy=;}} {{Jeśli niepuste|{{{color|}}}|przed lewy=color:|po lewy=;}} {{Jeśli niepuste|{{{spacing|}}}|przed lewy=letter-spacing:|po lewy=;}} {{Jeśli niepuste|{{{background|}}}|przed lewy=background-color:|po lewy=;}} {{Jeśli niepuste|{{{border|}}}|przed lewy=border:{{#switch:{{{border|transparent}}}|transparent|initial|unset|=0|1px}} solid&#32;|po lewy=;}} {{Jeśli niepuste|{{{display|}}}|przed lewy=display:|po lewy=;}} {{{styl|}}} | klasa = span-font {{{klasa|}}} | atrybuty = {{{atrybuty|}}} |<templatestyles src="Szablon:Font/styles.css" /><!-- -->{{{1}}}<!-- -->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> njngaxlomb3xgpsv7ut0tbhofm60ul4 553358 553357 2026-08-27T22:10:45Z Persino 2851 553358 wikitext text/x-wiki <includeonly><!-- -->{{Znacznik | tag = span | id = {{{id|}}} | styl = {{Jeśli niepuste|{{{face|}}}|przed lewy=font-family:|po lewy=;}} {{Jeśli niepuste|{{#if:{{{size|}}}|{{#if:{{#invoke:Parametry|Or |{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]?%d+$}} |{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]?%d+%.%d*$}} |{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]?%d*%.%d+$}} }} |{{#switch:{{Maksimum | 1 = 1 | 2 = {{Minimum | 1 = 7 | 2 = {{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}} |{{#expr:floor({{{size|inherit}}}+3)}} |{{#expr:floor({{{size|inherit}}})}} }} }} }} | 1 = {{#expr:2*({{Maksimum|1|{{Minimum|2|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-1)+8}}px | 2 = {{#expr:2*({{Maksimum|2|{{Minimum|3|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-2)+10}}px | 3 = {{#expr:2*({{Maksimum|3|{{Minimum|4|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-3)+12}}px | 4 = {{#expr:4*({{Maksimum|4|{{Minimum|5|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-4)+14}}px | 5 = {{#expr:6*({{Maksimum|5|{{Minimum|6|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-5)+18}}px | 6 = {{#expr:12*({{Maksimum|6|{{Minimum|7|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-6)+24}}px | 7 = 36px |#default={{{size|inherit}}} }} |{{#if:{{#invoke:Parametry|Or |1={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%+%-]?%d+%.?%d*%s*%a+$}} |2={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%+%-]?%.%d+%s*(%a+)$}} |3={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^%d+%.?%d*%s*(%%)$}} |4={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^%.%d+%s*(%%)$}} }} |{{{size|inherit}}} |{{#switch:{{{size|inherit}}}|inherit|unset|imitial|xx-small|x-small|small|medium|large|x-large|xx-large={{{size|inherit}}}|#default={{{size|inherit}}}em}} }} }}|}}|przed lewy=font-size:|po lewy=;}} {{Jeśli niepuste|{{{weight|}}}|przed lewy=font-weight:|po lewy=;}} {{Jeśli niepuste|{{{variant|}}}|przed lewy=font-variant:|po lewy=;}} {{Jeśli niepuste|{{{style|}}}|przed lewy=font-style:|po lewy=;}} {{Jeśli niepuste|{{{line|}}}|przed lewy=line-height:|po lewy=;}} {{Jeśli niepuste|{{{color|}}}|przed lewy=color:|po lewy=;}} {{Jeśli niepuste|{{{spacing|}}}|przed lewy=letter-spacing:|po lewy=;}} {{Jeśli niepuste|{{{background|}}}|przed lewy=background-color:|po lewy=;}} {{Jeśli niepuste|{{{border|}}}|przed lewy=border:{{#switch:{{{border|transparent}}}|transparent|initial|unset|=0|1px}} solid&#32;|po lewy=;}} {{Jeśli niepuste|{{{display|}}}|przed lewy=display:|po lewy=;}} {{{styl|}}} | klasa = span-font_style {{{klasa|}}} | atrybuty = {{{atrybuty|}}} |<templatestyles src="Szablon:Font/styles.css" /><!-- -->{{{1}}}<!-- -->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 95bp9jnl3wd7c1cpoowg4xswaf3qhnm 553360 553358 2026-08-27T22:38:11Z Persino 2851 553360 wikitext text/x-wiki <includeonly><!-- -->{{Znacznik | tag = span | id = {{{id|}}} | styl = {{Jeśli niepuste|{{{face|}}}|przed lewy=font-family:|po lewy=;}} {{Jeśli niepuste|{{#if:{{{size|}}}|{{#if:{{#invoke:Parametry|Or |{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]?%d+$}} |{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]?%d+%.%d*$}} |{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]?%d*%.%d+$}} }} |{{#switch:{{Maksimum | 1 = 1 | 2 = {{Minimum | 1 = 7 | 2 = {{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}} |{{#expr:floor({{{size|inherit}}}+3)}} |{{#expr:floor({{{size|inherit}}})}} }} }} }} | 1 = {{#expr:{{#expr:2*({{Maksimum|1|{{Minimum|2|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-1)+8}}/16}}em | 2 = {{#expr:{{#expr:2*({{Maksimum|2|{{Minimum|3|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-2)+10}}/16}}em | 3 = {{#expr:{{#expr:2*({{Maksimum|3|{{Minimum|4|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-3)+12}}/16}}em | 4 = {{#expr:{{#expr:4*({{Maksimum|4|{{Minimum|5|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-4)+14}}/16}}em | 5 = {{#expr:{{#expr:6*({{Maksimum|5|{{Minimum|6|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-5)+18}}/16}}em | 6 = {{#expr:{{#expr:12*({{Maksimum|6|{{Minimum|7|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-6)+24}}/16}}em | 7 = {{#expr:36/16}}em |#default={{{size|inherit}}} }} |{{#if:{{#invoke:Parametry|Or |1={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%+%-]?%d+%.?%d*%s*%a+$}} |2={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%+%-]?%.%d+%s*(%a+)$}} |3={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^%d+%.?%d*%s*(%%)$}} |4={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^%.%d+%s*(%%)$}} }} |{{{size|inherit}}} |{{#switch:{{{size|inherit}}}|inherit|unset|imitial|xx-small|x-small|small|medium|large|x-large|xx-large={{{size|inherit}}}|#default={{{size|inherit}}}em}} }} }}|}}|przed lewy=font-size:|po lewy=;}} {{Jeśli niepuste|{{{weight|}}}|przed lewy=font-weight:|po lewy=;}} {{Jeśli niepuste|{{{variant|}}}|przed lewy=font-variant:|po lewy=;}} {{Jeśli niepuste|{{{style|}}}|przed lewy=font-style:|po lewy=;}} {{Jeśli niepuste|{{{line|}}}|przed lewy=line-height:|po lewy=;}} {{Jeśli niepuste|{{{color|}}}|przed lewy=color:|po lewy=;}} {{Jeśli niepuste|{{{spacing|}}}|przed lewy=letter-spacing:|po lewy=;}} {{Jeśli niepuste|{{{background|}}}|przed lewy=background-color:|po lewy=;}} {{Jeśli niepuste|{{{border|}}}|przed lewy=border:{{#switch:{{{border|transparent}}}|transparent|initial|unset|=0|1px}} solid&#32;|po lewy=;}} {{Jeśli niepuste|{{{display|}}}|przed lewy=display:|po lewy=;}} {{{styl|}}} | klasa = span-font_style {{{klasa|}}} | atrybuty = {{{atrybuty|}}} |<templatestyles src="Szablon:Font/styles.css" /><!-- -->{{{1}}}<!-- -->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> fzycfb2hcqs1t5j3gtkbnfkb2dhyodk 553361 553360 2026-08-28T06:18:37Z Persino 2851 553361 wikitext text/x-wiki <includeonly><!-- -->{{Znacznik | tag = span | id = {{{id|}}} | styl = {{Jeśli niepuste|{{{face|}}}|przed lewy=font-family:|po lewy=;}} {{Jeśli niepuste|{{#if:{{{size|}}}|{{#if:{{#invoke:Parametry|Or |{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]?%d+$}} |{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]?%d+%.%d*$}} |{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]?%d*%.%d+$}} }} |{{#switch:{{Maksimum | 1 = 1 | 2 = {{Minimum | 1 = 7 | 2 = {{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}} |{{#expr:floor({{{size|inherit}}}+3)}} |{{#expr:floor({{{size|inherit}}})}} }} }} }} | 1 = {{#expr:(2*({{Maksimum|1|{{Minimum|2|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-1)+8)/16}}em | 2 = {{#expr:(2*({{Maksimum|2|{{Minimum|3|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-2)+10)/16}}em | 3 = {{#expr:(2*({{Maksimum|3|{{Minimum|4|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-3)+12)/16}}em | 4 = {{#expr:(4*({{Maksimum|4|{{Minimum|5|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-4)+14)/16}}em | 5 = {{#expr:(6*({{Maksimum|5|{{Minimum|6|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-5)+18)/16}}em | 6 = {{#expr:(12*({{Maksimum|6|{{Minimum|7|{{#if:{{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%-%+]}}|{{#expr:({{{size|inherit}}}+3)}}|{{{size|inherit}}}}}}}}}-6)+24)/16}}em | 7 = {{#expr:(36/16)}}em |#default={{{size|inherit}}} }} |{{#if:{{#invoke:Parametry|Or |1={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%+%-]?%d+%.?%d*%s*%a+$}} |2={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^[%+%-]?%.%d+%s*(%a+)$}} |3={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^%d+%.?%d*%s*(%%)$}} |4={{Dopasuj|ciąg={{{size|inherit}}}|wzór=^%.%d+%s*(%%)$}} }} |{{{size|inherit}}} |{{#switch:{{{size|inherit}}}|inherit|unset|imitial|xx-small|x-small|small|medium|large|x-large|xx-large={{{size|inherit}}}|#default={{{size|inherit}}}em}} }} }}|}}|przed lewy=font-size:|po lewy=;}} {{Jeśli niepuste|{{{weight|}}}|przed lewy=font-weight:|po lewy=;}} {{Jeśli niepuste|{{{variant|}}}|przed lewy=font-variant:|po lewy=;}} {{Jeśli niepuste|{{{style|}}}|przed lewy=font-style:|po lewy=;}} {{Jeśli niepuste|{{{line|}}}|przed lewy=line-height:|po lewy=;}} {{Jeśli niepuste|{{{color|}}}|przed lewy=color:|po lewy=;}} {{Jeśli niepuste|{{{spacing|}}}|przed lewy=letter-spacing:|po lewy=;}} {{Jeśli niepuste|{{{background|}}}|przed lewy=background-color:|po lewy=;}} {{Jeśli niepuste|{{{border|}}}|przed lewy=border:{{#switch:{{{border|transparent}}}|transparent|initial|unset|=0|1px}} solid&#32;|po lewy=;}} {{Jeśli niepuste|{{{display|}}}|przed lewy=display:|po lewy=;}} {{{styl|}}} | klasa = span-font_style {{{klasa|}}} | atrybuty = {{{atrybuty|}}} |<templatestyles src="Szablon:Font/styles.css" /><!-- -->{{{1}}}<!-- -->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> d7cqyaiq8wam1n02rm9jguyf1yezvej Szablon:Font/opis 10 61099 553348 527902 2026-08-27T20:44:08Z Persino 2851 /* Użycie */ 553348 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Znacznik liniowy umieszczany w tekście, pozwalający nadać temu elementowi pewne cechy, oparty na obsłudze tagów: {{Tag|span|parametry=style="font-family:coś;font-size:coś;line-height:coś;color:coś"}} (jest to element liniowy) - (tagi języka HTML), oraz identyfikatorów: {{Code|id}}, styli: {{Code|style}} (właściwości i ich zawartości przedstawiający język CSS), klas: {{Code|class}} (reguł w kaskadowych arkuszach stylów) i atrybutów (inne niż: {{Code|id}}, {{Code|style}} i {{Code|class}}), elementu HTML. Użycie: {{s|Font|kod}}, gdy w kodzie znajdują się znaki "=", to w nim należy stosować szablon {{s|{{=}}}}. Tekst jest umieszczany, wewnątrz tego szablonu, pomiędzy tymi tagami. Szablon pomocny przy zamianie znacznika {{Tag|font}}, np. takie coś {{Tag|font|parametry=size=+2 face=Arial|zawartość=Oto jest tekst}}, można zamienić na: {{Code|{{s|Font|size{{=}}+2|face{{=}}Arial|Oto jest tekst}}}}. == Opis parametrów == ; Wywołanie {{Pre|{{s|Font|1{{=}}|face{{=}}|size{{=}}|weight{{=}}|variant{{=}}|style{{=}}|line{{=}}|color{{=}}|spacing{{=}}|background{{=}}|border{{=}}|display{{=}}|id{{=}}|styl{{=}}|klasa{{=}}|atrybuty{{=}}}}}} Szablon {{s|Font}}, przyjmuje argumenty, którego wartości wraz z odpowiednimi nazwami, oprócz zmiennej {{Code|1}}, w nim, wsadza on do tagu, coś w rodzaju: {{Tag|tag|parametry=nazwa="wartość"}}, obsługiwanego przez niego znacznika, przez którego on jest oparty, a oto lista tych zmiennych poniżej. ; Parametry * {{Code|1}} - zawartość tekstu pomiędzy znacznikami - wymagany, * {{Code|face}} ({{Code|font-family}} w atrybucie: '''style''') - rodzina czcionek według CSS, domyślna wartość: {{Code|inherit}} - sugerowany, * {{Code|size}} ({{Code|font-size}} w atrybucie: '''style''') - rozmiar czcionki, domyślna wartość: {{Code|inherit}} - sugerowany, ** wartość: {{Parametr|size|coś}}, gdzie to {{Code|coś}} może przyjmować wartości dodatnie jak i ujemne, ze znakiem, liczb całkowitych, czy ułamkowych, takie jak: {{Code|+4}}, czy {{Code|-2}}, a nawet {{Code|+2.3}} - (w analogii do przestarzałego znacznika, np.: {{Tag|font|parametry=size="+5"}}, czy: {{Tag|font|parametry=size="-2"}}), a nawet liczby całkowite, czy ułakowe, bez znaku, takie jak: {{Code|6}}, bądź {{Code|4.7}} - (w analogii tego znacznika, np.: {{Tag|font|parametry=size="6"}}), albo w jednostkach właściwości: {{Font|font-size}}, w postaci jednostek bezwzględnych, jak: {{Code|15px}}, jak i względnych jak: {{Code|3em}}, lub może przyjmować inną wartość charakterystyczną dla tej właściwości, niebędące poprzednimi, ten parametr może być opisany też innymi formami zapisu niż: {{Parametr|size}}, które są typowo chcarakterystyczne dla {{Code|font-size}}, lub dla wszystkich właściwości, coś w rodzaju: {{Code|unset}}, {{Code|initial}}, czy {{Code|inherit}}; * {{Code|weight}} ({{Code|font-weight}} w atrybucie '''style''') - określa grubość czcionki, domyślna wartość: {{Code|inherit}} - sugerowany, * {{Code|variant}} ({{Code|font-variant}} w atrybucie '''style''') - dodatkowy wariant czcionki, normalny (normal) lub gdzie małe litery są wielkie, lecz ich wysokośc jest taka jak małe, domyślna wartość: {{Code|inherit}} - sugerowany, * {{Code|style}} ({{Code|font-style}}) w atrybucie '''style''') - określa styl normalny (normal) lub pochylony, domyślna wartość: {{Code|inherit}} - sugerowany, * {{Code|line}} ({{Code|line-height}} w atrybucie: '''style''') - wysokość czcionki, domyślna wartość: {{Code|inherit}} - sugerowany, * {{Code|color}} ({{Code|color}} w atrybucie: '''style''') - kolor czcionki, domyślna wartość: {{Code|inherit}} - sugerowany, * {{Code|spacing}} ({{Code|letter-spacing}} w atrybucie '''style''') - odległość pomiędzy literami w wyrazie, domyślna wartość: {{Code|inherit}} - sugerowany, * {{code|background}} ({{Code|background-color}} w atrybucie: '''style''') - kolor tła, domyślna wartość: {{Code|transparent}} - sugerowany, * {{Code|border}} ({{Code|border-color}} w atrybucie '''style''') - kolor obramowania, domyślna wartość: {{Code|transparent}} - sugerowany, * {{Code|display}} ({{Code|display}} w atrybucie '''style''') - co znacznik {{Tag|span}} ma symulować, w szablonie {{s|Font}} symbolizujący znacznik {{Tag|font}}, jaki element, domyślna wartość: {{Code|inline}} - sugerowany, * {{Code|id}} - unikatowy identyfikator, znacznika - sugerowany, * {{Code|styl}} - styl CSS znacznika - właściwości i ich wartości - opcjonalny, * {{Code|klasa}} - reguły CSS, do klasy znacznika, czyli zbioru właściwości i ich wartości - opcjonalny, * {{Code|atrybuty}} - atrybuty znacznika (inne niż: {{Code|id}}, {{Code|styl}} i {{Code|class}}) - opcjonalny. ---- Powyższe parametry oprócz pierwszego są opcjonalne za wyjątkiem parametrów: {{Code|id}} oraz {{Code|face}}, {{Code|size}}, {{Code|weight}}, {{Code|variant}}, {{Code|style}}, {{Code|line}} i {{Code|color}}, które są sugerowane. == Wikikod, zbudowany za pomocą szablonu znaczników (kombajnu) == Szablon {{s|Font}} ma kod w zależności od znacznika: {{s|Znacznik}}, przedstawiający się: ; Szablon {{s|Font}} {{PreWikikod|Font}} == Przykłady == Najprostszym możliwym przypadkiem jest nieużycie żadnego parametry tego szablonu. ;Przykład {{Pre|Oto jest tekst przed tym szablonem: {{s|Font|face{{=}}Times New Roman|size{{=}}+3|color{{=}}blue|Oto jest tekst do analizy}}, a tutaj po.}} ;Wynik {{Pre|Oto jest tekst przed tym szablonem: {{Font|face=Times New Roman|size=+3|color=blue|Oto jest tekst do analizy}}, a tutaj po.}} === Tabelka z przykładami dla szablonu: {{s|Font}}, czyli przy znaczniku: {{Tag|span|parametry=style="font-family:coś;font-size:coś;line-height:coś;color:coś"}}=== Style są w oparciu o kaskadowe arkusze stylów, które są napisane w stylach przykładów: {{ls2|Znacznik/przykłady.css}}. W poniższych przykładach należy pamiętać o napisaniu: {{ŹródłoXml|{{Mniejszy}}templatestyles src{{=}}"Szablon:Znacznik/przykłady.css" /{{Większy}}}} Zatem: <templatestyles src="Szablon:Znacznik/przykłady.css" /> {{Tabela przykładów użycia szablonów| {{Przykład użycia szablonu w tabeli|tytuł=Font|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=face=sans-serif|3=line=1.4em|4=size=1.0em|5=color=darkslategray;|6=styl=background-color:ivory;border:darkblue 1px solid;}} {{Przykład użycia szablonu w tabeli|tytuł=Font|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=color=darkslategray;|3=styl=background-color:ivory;border:darkblue 1px solid;|4=klasa=czcionka}} {{Przykład użycia szablonu w tabeli|tytuł=Font|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=color=darkslategray;|3=klasa=czcionka|4=id=przykład2}} {{Przykład użycia szablonu w tabeli|tytuł=Font|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=color=darkslategray;|3=klasa=tło obramowanie|4=id=przykład1}} {{Przykład użycia szablonu w tabeli|tytuł=Font|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=color=darkslategray;|3=klasa=czcionka kolor tło obramowanie}} {{Przykład użycia szablonu w tabeli|tytuł=Font|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=color=darkslategray;|3=id=przykład}} }} Widzimy w powyższej tabelce, że niezależnie jak napiszemy znacznik: {{Tag|span|parametry=style="font-family:coś;font-size:coś;line-height:coś;color:coś"}}, to wynik otrzymujemy taki sam, a to rozplanowanie stylów zrobiliśmy poprzez rozdzielenie stylów pomiędzy atrybutami: {{Code|style}}, {{Code|class}} lub {{Code|id}}. == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Tekst, któremu można nadać pewne cechy.", "type": "string", "required": true }, "styl": { "description": "Styl CSS, właściwości i ich wartości.", "type": "string" }, "klasa": { "description": "Reguły CSS, do klasy, kaskadowych arkuszy stylów.", "type": "string" }, "id": { "description": "Unikatowy identyfikator.", "type": "string", "suggested": true }, "atrybuty": { "description": "Atrybuty, inne niż: id, style i class.", "type": "string" }, "face": { "description": "font-family w atrybucie: style - rodzina czcionek.", "default": "inherit", "type": "string", "suggested": true }, "size": { "description": "font-size w atrybucie: style - rozmiar czcionki.", "default": "inherit", "type": "string", "suggested": true }, "line": { "description": "line-height w atrybucie: style - wysokość czcionki.", "default": "inherit", "type": "string", "suggested": true }, "color": { "description": "color w atrybucie: style - kolor czcionki.", "default": "inherit", "type": "string", "suggested": true }, "weight": { "description": "font-weight w atrybucie style - określa grubość czcionki.", "type": "string", "default": "inherit", "suggested": true }, "variant": { "description": "font-variant w atrybucie style - dodatkowy wariant czcionki, normalny (normal) lub gdzie małe litery są wielkie, lecz ich wysokośc jest taka jak małe.", "type": "string", "default": "inherit", "suggested": true }, "style": { "description": "font-style w atrybucie style)- określa styl normalny (normal) lub pochylony.", "type": "string", "default": "inherit", "suggested": true } }, "paramOrder": [ "1", "face", "size", "weight", "variant", "style", "line", "color", "id", "styl", "klasa", "atrybuty" ], "description": "Szablon nadającej tekstowi, w tekście, pewne cechy, za pomocą stylów, w elemencie: <span style=\"font-family:coś;size:coś|color:coś\">...</span>." } </templatedata> == Zobacz też == * {{s|Znacznik}} - szablon, o który ten szablon, jest zbudowany, w oparciu o element liniowy: {{Tag|span}}, o tekście umieszczanego, wewnątrz tego szablonu, pomiędzy tymi tagami. {{Szablony ramek formułujące kod}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony do formatowania tekstu | Szablony ramek tworzące kod HTML | Szablony znaczników }} </includeonly> 2owvwfu9uixm9su9tpnb1tkucofahnk 553355 553348 2026-08-27T21:39:22Z Persino 2851 /* Tabelka z przykładami dla szablonu: {{s|Font}}, czyli przy znaczniku: {{Tag|span|parametry=style="font-family:coś;font-size:coś;line-height:coś;color:coś"}} */ 553355 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Znacznik liniowy umieszczany w tekście, pozwalający nadać temu elementowi pewne cechy, oparty na obsłudze tagów: {{Tag|span|parametry=style="font-family:coś;font-size:coś;line-height:coś;color:coś"}} (jest to element liniowy) - (tagi języka HTML), oraz identyfikatorów: {{Code|id}}, styli: {{Code|style}} (właściwości i ich zawartości przedstawiający język CSS), klas: {{Code|class}} (reguł w kaskadowych arkuszach stylów) i atrybutów (inne niż: {{Code|id}}, {{Code|style}} i {{Code|class}}), elementu HTML. Użycie: {{s|Font|kod}}, gdy w kodzie znajdują się znaki "=", to w nim należy stosować szablon {{s|{{=}}}}. Tekst jest umieszczany, wewnątrz tego szablonu, pomiędzy tymi tagami. Szablon pomocny przy zamianie znacznika {{Tag|font}}, np. takie coś {{Tag|font|parametry=size=+2 face=Arial|zawartość=Oto jest tekst}}, można zamienić na: {{Code|{{s|Font|size{{=}}+2|face{{=}}Arial|Oto jest tekst}}}}. == Opis parametrów == ; Wywołanie {{Pre|{{s|Font|1{{=}}|face{{=}}|size{{=}}|weight{{=}}|variant{{=}}|style{{=}}|line{{=}}|color{{=}}|spacing{{=}}|background{{=}}|border{{=}}|display{{=}}|id{{=}}|styl{{=}}|klasa{{=}}|atrybuty{{=}}}}}} Szablon {{s|Font}}, przyjmuje argumenty, którego wartości wraz z odpowiednimi nazwami, oprócz zmiennej {{Code|1}}, w nim, wsadza on do tagu, coś w rodzaju: {{Tag|tag|parametry=nazwa="wartość"}}, obsługiwanego przez niego znacznika, przez którego on jest oparty, a oto lista tych zmiennych poniżej. ; Parametry * {{Code|1}} - zawartość tekstu pomiędzy znacznikami - wymagany, * {{Code|face}} ({{Code|font-family}} w atrybucie: '''style''') - rodzina czcionek według CSS, domyślna wartość: {{Code|inherit}} - sugerowany, * {{Code|size}} ({{Code|font-size}} w atrybucie: '''style''') - rozmiar czcionki, domyślna wartość: {{Code|inherit}} - sugerowany, ** wartość: {{Parametr|size|coś}}, gdzie to {{Code|coś}} może przyjmować wartości dodatnie jak i ujemne, ze znakiem, liczb całkowitych, czy ułamkowych, takie jak: {{Code|+4}}, czy {{Code|-2}}, a nawet {{Code|+2.3}} - (w analogii do przestarzałego znacznika, np.: {{Tag|font|parametry=size="+5"}}, czy: {{Tag|font|parametry=size="-2"}}), a nawet liczby całkowite, czy ułakowe, bez znaku, takie jak: {{Code|6}}, bądź {{Code|4.7}} - (w analogii tego znacznika, np.: {{Tag|font|parametry=size="6"}}), albo w jednostkach właściwości: {{Font|font-size}}, w postaci jednostek bezwzględnych, jak: {{Code|15px}}, jak i względnych jak: {{Code|3em}}, lub może przyjmować inną wartość charakterystyczną dla tej właściwości, niebędące poprzednimi, ten parametr może być opisany też innymi formami zapisu niż: {{Parametr|size}}, które są typowo chcarakterystyczne dla {{Code|font-size}}, lub dla wszystkich właściwości, coś w rodzaju: {{Code|unset}}, {{Code|initial}}, czy {{Code|inherit}}; * {{Code|weight}} ({{Code|font-weight}} w atrybucie '''style''') - określa grubość czcionki, domyślna wartość: {{Code|inherit}} - sugerowany, * {{Code|variant}} ({{Code|font-variant}} w atrybucie '''style''') - dodatkowy wariant czcionki, normalny (normal) lub gdzie małe litery są wielkie, lecz ich wysokośc jest taka jak małe, domyślna wartość: {{Code|inherit}} - sugerowany, * {{Code|style}} ({{Code|font-style}}) w atrybucie '''style''') - określa styl normalny (normal) lub pochylony, domyślna wartość: {{Code|inherit}} - sugerowany, * {{Code|line}} ({{Code|line-height}} w atrybucie: '''style''') - wysokość czcionki, domyślna wartość: {{Code|inherit}} - sugerowany, * {{Code|color}} ({{Code|color}} w atrybucie: '''style''') - kolor czcionki, domyślna wartość: {{Code|inherit}} - sugerowany, * {{Code|spacing}} ({{Code|letter-spacing}} w atrybucie '''style''') - odległość pomiędzy literami w wyrazie, domyślna wartość: {{Code|inherit}} - sugerowany, * {{code|background}} ({{Code|background-color}} w atrybucie: '''style''') - kolor tła, domyślna wartość: {{Code|transparent}} - sugerowany, * {{Code|border}} ({{Code|border-color}} w atrybucie '''style''') - kolor obramowania, domyślna wartość: {{Code|transparent}} - sugerowany, * {{Code|display}} ({{Code|display}} w atrybucie '''style''') - co znacznik {{Tag|span}} ma symulować, w szablonie {{s|Font}} symbolizujący znacznik {{Tag|font}}, jaki element, domyślna wartość: {{Code|inline}} - sugerowany, * {{Code|id}} - unikatowy identyfikator, znacznika - sugerowany, * {{Code|styl}} - styl CSS znacznika - właściwości i ich wartości - opcjonalny, * {{Code|klasa}} - reguły CSS, do klasy znacznika, czyli zbioru właściwości i ich wartości - opcjonalny, * {{Code|atrybuty}} - atrybuty znacznika (inne niż: {{Code|id}}, {{Code|styl}} i {{Code|class}}) - opcjonalny. ---- Powyższe parametry oprócz pierwszego są opcjonalne za wyjątkiem parametrów: {{Code|id}} oraz {{Code|face}}, {{Code|size}}, {{Code|weight}}, {{Code|variant}}, {{Code|style}}, {{Code|line}} i {{Code|color}}, które są sugerowane. == Wikikod, zbudowany za pomocą szablonu znaczników (kombajnu) == Szablon {{s|Font}} ma kod w zależności od znacznika: {{s|Znacznik}}, przedstawiający się: ; Szablon {{s|Font}} {{PreWikikod|Font}} == Przykłady == Najprostszym możliwym przypadkiem jest nieużycie żadnego parametry tego szablonu. ;Przykład {{Pre|Oto jest tekst przed tym szablonem: {{s|Font|face{{=}}Times New Roman|size{{=}}+3|color{{=}}blue|Oto jest tekst do analizy}}, a tutaj po.}} ;Wynik {{Pre|Oto jest tekst przed tym szablonem: {{Font|face=Times New Roman|size=+3|color=blue|Oto jest tekst do analizy}}, a tutaj po.}} === Tabelka z przykładami dla szablonu: {{s|Font}}, czyli przy znaczniku: {{Tag|span|parametry=style="font-family:coś;font-size:coś;line-height:coś;color:coś"}}=== Style są w oparciu o kaskadowe arkusze stylów, które są napisane w stylach przykładów: {{ls2|Znacznik/przykłady.css}}. W poniższych przykładach należy pamiętać o napisaniu: {{ŹródłoXml|{{Mniejszy}}templatestyles src{{=}}"Szablon:Znacznik/przykłady.css" /{{Większy}}}} Zatem: <templatestyles src="Szablon:Znacznik/przykłady.css" /> {{Tabela przykładów użycia szablonów| {{Przykład użycia szablonu w tabeli|tytuł=Font|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=face=sans-serif|3=line=1.4em|4=size=1.2em|5=color=darkslategray;|6=styl=background-color:ivory;border:darkblue 1px solid;}} {{Przykład użycia szablonu w tabeli|tytuł=Font|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=color=darkslategray;|3=styl=background-color:ivory;border:darkblue 1px solid;|4=klasa=czcionka}} {{Przykład użycia szablonu w tabeli|tytuł=Font|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=color=darkslategray;|3=klasa=czcionka|4=id=przykład2}} {{Przykład użycia szablonu w tabeli|tytuł=Font|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=color=darkslategray;|3=klasa=tło obramowanie|4=id=przykład1}} {{Przykład użycia szablonu w tabeli|tytuł=Font|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=color=darkslategray;|3=klasa=czcionka kolor tło obramowanie}} {{Przykład użycia szablonu w tabeli|tytuł=Font|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=color=darkslategray;|3=id=przykład}} }} Widzimy w powyższej tabelce, że niezależnie jak napiszemy znacznik: {{Tag|span|parametry=style="font-family:coś;font-size:coś;line-height:coś;color:coś"}}, to wynik otrzymujemy taki sam, a to rozplanowanie stylów zrobiliśmy poprzez rozdzielenie stylów pomiędzy atrybutami: {{Code|style}}, {{Code|class}} lub {{Code|id}}. == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Tekst, któremu można nadać pewne cechy.", "type": "string", "required": true }, "styl": { "description": "Styl CSS, właściwości i ich wartości.", "type": "string" }, "klasa": { "description": "Reguły CSS, do klasy, kaskadowych arkuszy stylów.", "type": "string" }, "id": { "description": "Unikatowy identyfikator.", "type": "string", "suggested": true }, "atrybuty": { "description": "Atrybuty, inne niż: id, style i class.", "type": "string" }, "face": { "description": "font-family w atrybucie: style - rodzina czcionek.", "default": "inherit", "type": "string", "suggested": true }, "size": { "description": "font-size w atrybucie: style - rozmiar czcionki.", "default": "inherit", "type": "string", "suggested": true }, "line": { "description": "line-height w atrybucie: style - wysokość czcionki.", "default": "inherit", "type": "string", "suggested": true }, "color": { "description": "color w atrybucie: style - kolor czcionki.", "default": "inherit", "type": "string", "suggested": true }, "weight": { "description": "font-weight w atrybucie style - określa grubość czcionki.", "type": "string", "default": "inherit", "suggested": true }, "variant": { "description": "font-variant w atrybucie style - dodatkowy wariant czcionki, normalny (normal) lub gdzie małe litery są wielkie, lecz ich wysokośc jest taka jak małe.", "type": "string", "default": "inherit", "suggested": true }, "style": { "description": "font-style w atrybucie style)- określa styl normalny (normal) lub pochylony.", "type": "string", "default": "inherit", "suggested": true } }, "paramOrder": [ "1", "face", "size", "weight", "variant", "style", "line", "color", "id", "styl", "klasa", "atrybuty" ], "description": "Szablon nadającej tekstowi, w tekście, pewne cechy, za pomocą stylów, w elemencie: <span style=\"font-family:coś;size:coś|color:coś\">...</span>." } </templatedata> == Zobacz też == * {{s|Znacznik}} - szablon, o który ten szablon, jest zbudowany, w oparciu o element liniowy: {{Tag|span}}, o tekście umieszczanego, wewnątrz tego szablonu, pomiędzy tymi tagami. {{Szablony ramek formułujące kod}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony do formatowania tekstu | Szablony ramek tworzące kod HTML | Szablony znaczników }} </includeonly> q7lxbgyisu077aukkab94hamdjf829u Moduł:Tabela/styles.css 828 62045 553344 549319 2026-08-27T19:04:42Z Persino 2851 553344 sanitized-css text/css table.wikitabela-moduł > tbody > tr > th > p:first-child, table.wikitabela-moduł > tbody > tr > td > p:first-child{ margin-top:0; } table.wikitabela-moduł > tbody > tr > th > p:last-child, table.wikitabela-moduł > tbody > tr > td > p:last-child{ margin-bottom:0; } table.wikitabela-moduł > tbody > tr > th > p:last-child:not(:first-child), table.wikitabela-moduł > tbody > tr > td > p:last-child:not(:first-child){ margin-top:0.3em; } table.wikitabela-moduł > tbody > tr > th > p:first-child:not(:last-child), table.wikitabela-moduł > tbody > tr > td > p:first-child:not(:last-child){ margin-bottom:0.3em; } table.wikitabela-moduł.tekst-centruj > tbody > tr > th, table.wikitabela-moduł.tekst-centruj > tbody > tr > td, table.wikitabela-moduł.tekst-centruj-th > tbody > tr > th, table.wikitabela-moduł.tekst-centruj-td > tbody > tr > td{ text-align:center; vertical-align:middle; } table.wikitabela-moduł.tekst-lewo > tbody > tr > th, table.wikitabela-moduł.tekst-lewo > tbody > tr > td, table.wikitabela-moduł.tekst-lewo-th > tbody > tr > th, table.wikitabela-moduł.tekst-lewo-td > tbody > tr > td{ text-align:left; vertical-align:middle; } table.wikitabela-moduł.tekst-prawo > tbody > tr > th, table.wikitabela-moduł.tekst-prawo > tbody > tr > td, table.wikitabela-moduł.tekst-prawo-th > tbody > tr > th, table.wikitabela-moduł.tekst-prawo-td > tbody > tr > td{ text-align:right; vertical-align:middle; } div.wikitabela-moduł.tabela-prawo, div.wikitabela-moduł.tabela-lewo, div.wikitabela-moduł.tabela-centruj, div.wikitabela-moduł.tabela-brak{ display:block; overflow:auto; box-sizing:border-box; max-width:100%; width:fit-content; } div.wikitabela-moduł.tabela-prawo{ float:right; clear:right; padding: 0 0 2em 2em; } div.wikitabela-moduł.tabela-lewo{ float:left; clear:left; padding:0 2em 2em 0; } div.wikitabela-moduł.tabela-centruj{ padding: 0 2em 0 2em; margin:0 auto; } div.wikitabela-moduł.tabela-brak{ padding: 0; margin:0; } div.wikitabela-moduł.tabela-centruj > table, div.wikitabela-moduł.tabela-lewo > table, div.wikitabela-moduł.tabela-prawo > table, div.wikitabela-moduł.tabela-brak > table{ margin:0; } table.wikitabela-moduł{ display:table; } table.wikitabela-moduł > tbody{ display:table-row-group; } table.wikitabela-moduł > tbody > tr{ display:table-row; } table.wikitabela-moduł > tbody > tr > th, table.wikitabela-moduł > tbody > tr > td{ display:table-cell; } table.wikitabela-moduł > caption{ display:table-caption; } div.wikitabela-moduł.tabela-strona.tabela-centruj{ padding:0; width:100%; box-sizing:border-box; } div.wikitabela-moduł.tabela-padding-strona.tabela-centruj{ width:100%; box-sizing:border-box; } div.wikitabela-moduł.tabela-strona.tabela-centruj > table, div.wikitabela-moduł.tabela-padding-strona.tabela-centruj > table{ width:100%; box-sizing:border-box; } div.wikitabela-moduł.tabela-centruj.tabela-szerokość, div.wikitabela-moduł.tabela-centruj.tabela-szerokość, div.wikitabela-moduł.tabela-brak.tabela-szerokość, div.wikitabela-moduł.tabela-brak.tabela-szerokość{ max-width:100vw; width:100%; margin:0; padding:0; box-sizing:border-box; } div.wikitabela-moduł.tabela-centruj.tabela-szerokość > table, div.wikitabela-moduł.tabela-centruj.tabela-szerokość > table, div.wikitabela-moduł.tabela-brak.tabela-szerokość > table, div.wikitabela-moduł.tabela-brak.tabela-szerokość > table{ width:100%; box-sizing:border-box; } div.wikitabela-moduł.tabela-flex > table{ display:flex; flex-direction:row; width:100%; } div.wikitabela-moduł.tabela-flex > table > tbody{ display:flex; flex-direction:column; width:100%; } div.wikitabela-moduł.tabela-flex > table > tbody > tr{ display:flex; flex-direction:row; width:100%; } div.wikitabela-moduł.tabela-flex > table > tbody > tr > th, div.wikitabela-moduł.tabela-flex > table > tbody > tr > td{ flex: 1 1 auto; } @media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ div.wikitabela-moduł.tabela-prawo, div.wikitabela-moduł.tabela-lewo, div.wikitabela-moduł.tabela-centruj, div.wikitabela-moduł.tabela-brak{ display:block; max-width:100vw; width:100%; margin:0; padding:0; float:none; clear:none; } div.wikitabela-moduł.tabela-prawo > table, div.wikitabela-moduł.tabela-lewo > table, div.wikitabela-moduł.tabela-centruj > table, div.wikitabela-moduł.tabela-brak > table{ width:100%; box-sizing:border-box; } div.wikitabela-moduł.tabela-prawo > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar > span, div.wikitabela-moduł.tabela-lewo > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar > span, div.wikitabela-moduł.tabela-centruj > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar > span, div.wikitabela-moduł.tabela-brak > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar > span{ width:100% !important; height:100% !important; } div.wikitabela-moduł.tabela-prawo > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar, div.wikitabela-moduł.tabela-lewo > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar, div.wikitabela-moduł.tabela-centruj > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar, div.wikitabela-moduł.tabela-brak > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar{ width:100%; } } /*{{Kategoria|Moduły - arkusze stylów}}*/ bvfwrjp91wi4ahavhvehgcug4ij96cr 553345 553344 2026-08-27T19:06:54Z Persino 2851 553345 sanitized-css text/css table.wikitabela-moduł > tbody > tr > th > p:first-child, table.wikitabela-moduł > tbody > tr > td > p:first-child{ margin-top:0; } table.wikitabela-moduł > tbody > tr > th > p:last-child, table.wikitabela-moduł > tbody > tr > td > p:last-child{ margin-bottom:0; } table.wikitabela-moduł > tbody > tr > th > p:last-child:not(:first-child), table.wikitabela-moduł > tbody > tr > td > p:last-child:not(:first-child){ margin-top:0.3em; } table.wikitabela-moduł > tbody > tr > th > p:first-child:not(:last-child), table.wikitabela-moduł > tbody > tr > td > p:first-child:not(:last-child){ margin-bottom:0.3em; } table.wikitabela-moduł.tekst-centruj > tbody > tr > th, table.wikitabela-moduł.tekst-centruj > tbody > tr > td, table.wikitabela-moduł.tekst-centruj-th > tbody > tr > th, table.wikitabela-moduł.tekst-centruj-td > tbody > tr > td{ text-align:center; vertical-align:middle; } table.wikitabela-moduł.tekst-lewo > tbody > tr > th, table.wikitabela-moduł.tekst-lewo > tbody > tr > td, table.wikitabela-moduł.tekst-lewo-th > tbody > tr > th, table.wikitabela-moduł.tekst-lewo-td > tbody > tr > td{ text-align:left; vertical-align:middle; } table.wikitabela-moduł.tekst-prawo > tbody > tr > th, table.wikitabela-moduł.tekst-prawo > tbody > tr > td, table.wikitabela-moduł.tekst-prawo-th > tbody > tr > th, table.wikitabela-moduł.tekst-prawo-td > tbody > tr > td{ text-align:right; vertical-align:middle; } div.wikitabela-moduł.tabela-prawo, div.wikitabela-moduł.tabela-lewo, div.wikitabela-moduł.tabela-centruj, div.wikitabela-moduł.tabela-brak{ display:block; overflow:auto; box-sizing:border-box; max-width:100%; width:fit-content; } div.wikitabela-moduł.tabela-prawo{ float:right; clear:right; padding: 0 0 2em 2em; } div.wikitabela-moduł.tabela-lewo{ float:left; clear:left; padding:0 2em 2em 0; } div.wikitabela-moduł.tabela-centruj{ padding: 0 2em 0 2em; margin:0 auto; } div.wikitabela-moduł.tabela-brak{ padding: 0; margin:0; } div.wikitabela-moduł.tabela-centruj > table, div.wikitabela-moduł.tabela-lewo > table, div.wikitabela-moduł.tabela-prawo > table, div.wikitabela-moduł.tabela-brak > table{ margin:0; } table.wikitabela-moduł{ display:table; } table.wikitabela-moduł > tbody{ display:table-row-group; } table.wikitabela-moduł > tbody > tr{ display:table-row; } table.wikitabela-moduł > tbody > tr > th, table.wikitabela-moduł > tbody > tr > td{ display:table-cell; } table.wikitabela-moduł > caption{ display:table-caption; } div.wikitabela-moduł.tabela-strona.tabela-centruj{ padding:0; width:100%; box-sizing:border-box; } div.wikitabela-moduł.tabela-padding-strona.tabela-centruj{ width:100%; box-sizing:border-box; } div.wikitabela-moduł.tabela-strona.tabela-centruj > table, div.wikitabela-moduł.tabela-padding-strona.tabela-centruj > table{ width:100%; box-sizing:border-box; } div.wikitabela-moduł.tabela-centruj.tabela-szerokość, div.wikitabela-moduł.tabela-centruj.tabela-szerokość, div.wikitabela-moduł.tabela-brak.tabela-szerokość, div.wikitabela-moduł.tabela-brak.tabela-szerokość{ max-width:100vw; width:100%; margin:0; padding:0; box-sizing:border-box; } div.wikitabela-moduł.tabela-centruj.tabela-szerokość > table, div.wikitabela-moduł.tabela-centruj.tabela-szerokość > table, div.wikitabela-moduł.tabela-brak.tabela-szerokość > table, div.wikitabela-moduł.tabela-brak.tabela-szerokość > table{ width:100%; box-sizing:border-box; } div.wikitabela-moduł.tabela-flex > table{ display:flex; flex-direction:row; width:100%; } div.wikitabela-moduł.tabela-flex > table > tbody{ display:flex; flex-direction:column; width:100%; } div.wikitabela-moduł.tabela-flex > table > tbody > tr{ display:flex; flex-direction:row; width:100%; } div.wikitabela-moduł.tabela-flex > table > tbody > tr > th, div.wikitabela-moduł.tabela-flex > table > tbody > tr > td{ flex: 1 1 100%; } @media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ div.wikitabela-moduł.tabela-prawo, div.wikitabela-moduł.tabela-lewo, div.wikitabela-moduł.tabela-centruj, div.wikitabela-moduł.tabela-brak{ display:block; max-width:100vw; width:100%; margin:0; padding:0; float:none; clear:none; } div.wikitabela-moduł.tabela-prawo > table, div.wikitabela-moduł.tabela-lewo > table, div.wikitabela-moduł.tabela-centruj > table, div.wikitabela-moduł.tabela-brak > table{ width:100%; box-sizing:border-box; } div.wikitabela-moduł.tabela-prawo > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar > span, div.wikitabela-moduł.tabela-lewo > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar > span, div.wikitabela-moduł.tabela-centruj > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar > span, div.wikitabela-moduł.tabela-brak > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar > span{ width:100% !important; height:100% !important; } div.wikitabela-moduł.tabela-prawo > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar, div.wikitabela-moduł.tabela-lewo > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar, div.wikitabela-moduł.tabela-centruj > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar, div.wikitabela-moduł.tabela-brak > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar{ width:100%; } } /*{{Kategoria|Moduły - arkusze stylów}}*/ mcn1w6r3od9ovcv5ukolr508fx5g0xg 553346 553345 2026-08-27T19:13:56Z Persino 2851 553346 sanitized-css text/css table.wikitabela-moduł > tbody > tr > th > p:first-child, table.wikitabela-moduł > tbody > tr > td > p:first-child{ margin-top:0; } table.wikitabela-moduł > tbody > tr > th > p:last-child, table.wikitabela-moduł > tbody > tr > td > p:last-child{ margin-bottom:0; } table.wikitabela-moduł > tbody > tr > th > p:last-child:not(:first-child), table.wikitabela-moduł > tbody > tr > td > p:last-child:not(:first-child){ margin-top:0.3em; } table.wikitabela-moduł > tbody > tr > th > p:first-child:not(:last-child), table.wikitabela-moduł > tbody > tr > td > p:first-child:not(:last-child){ margin-bottom:0.3em; } table.wikitabela-moduł.tekst-centruj > tbody > tr > th, table.wikitabela-moduł.tekst-centruj > tbody > tr > td, table.wikitabela-moduł.tekst-centruj-th > tbody > tr > th, table.wikitabela-moduł.tekst-centruj-td > tbody > tr > td{ text-align:center; vertical-align:middle; } table.wikitabela-moduł.tekst-lewo > tbody > tr > th, table.wikitabela-moduł.tekst-lewo > tbody > tr > td, table.wikitabela-moduł.tekst-lewo-th > tbody > tr > th, table.wikitabela-moduł.tekst-lewo-td > tbody > tr > td{ text-align:left; vertical-align:middle; } table.wikitabela-moduł.tekst-prawo > tbody > tr > th, table.wikitabela-moduł.tekst-prawo > tbody > tr > td, table.wikitabela-moduł.tekst-prawo-th > tbody > tr > th, table.wikitabela-moduł.tekst-prawo-td > tbody > tr > td{ text-align:right; vertical-align:middle; } div.wikitabela-moduł.tabela-prawo, div.wikitabela-moduł.tabela-lewo, div.wikitabela-moduł.tabela-centruj, div.wikitabela-moduł.tabela-brak{ display:block; overflow:auto; box-sizing:border-box; max-width:100%; width:fit-content; } div.wikitabela-moduł.tabela-prawo{ float:right; clear:right; padding: 0 0 2em 2em; } div.wikitabela-moduł.tabela-lewo{ float:left; clear:left; padding:0 2em 2em 0; } div.wikitabela-moduł.tabela-centruj{ padding: 0 2em 0 2em; margin:0 auto; } div.wikitabela-moduł.tabela-brak{ padding: 0; margin:0; } div.wikitabela-moduł.tabela-centruj > table, div.wikitabela-moduł.tabela-lewo > table, div.wikitabela-moduł.tabela-prawo > table, div.wikitabela-moduł.tabela-brak > table{ margin:0; } table.wikitabela-moduł{ display:table; } table.wikitabela-moduł > tbody{ display:table-row-group; } table.wikitabela-moduł > tbody > tr{ display:table-row; } table.wikitabela-moduł > tbody > tr > th, table.wikitabela-moduł > tbody > tr > td{ display:table-cell; } table.wikitabela-moduł > caption{ display:table-caption; } div.wikitabela-moduł.tabela-strona.tabela-centruj{ padding:0; width:100%; box-sizing:border-box; } div.wikitabela-moduł.tabela-padding-strona.tabela-centruj{ width:100%; box-sizing:border-box; } div.wikitabela-moduł.tabela-strona.tabela-centruj > table, div.wikitabela-moduł.tabela-padding-strona.tabela-centruj > table{ width:100%; box-sizing:border-box; } div.wikitabela-moduł.tabela-centruj.tabela-szerokość, div.wikitabela-moduł.tabela-centruj.tabela-szerokość, div.wikitabela-moduł.tabela-brak.tabela-szerokość, div.wikitabela-moduł.tabela-brak.tabela-szerokość{ max-width:100vw; width:100%; margin:0; padding:0; box-sizing:border-box; } div.wikitabela-moduł.tabela-centruj.tabela-szerokość > table, div.wikitabela-moduł.tabela-centruj.tabela-szerokość > table, div.wikitabela-moduł.tabela-brak.tabela-szerokość > table, div.wikitabela-moduł.tabela-brak.tabela-szerokość > table{ width:100%; box-sizing:border-box; } div.wikitabela-moduł.tabela-flex > table{ display:flex; flex-direction:row; width:100%; } div.wikitabela-moduł.tabela-flex > table > tbody{ display:flex; flex-direction:column; width:100%; } div.wikitabela-moduł.tabela-flex > table > tbody > tr{ display:flex; flex-direction:row; width:100%; } div.wikitabela-moduł.tabela-flex > table > tbody > tr > th, div.wikitabela-moduł.tabela-flex > table > tbody > tr > td{ flex: 1 1 100%; } div.wikitabela-moduł.tabela-flex > table > tbody > tr:not(:first-child){ margin:10px 0 0 0; } div.wikitabela-moduł.tabela-flex > table > tbody > tr:only-child{ margin:0; } div.wikitabela-moduł.tabela-flex > table > tbody > tr > th:not(:last-child), div.wikitabela-moduł.tabela-flex > table > tbody > tr > td:not(:last-child){ margin:0 10px 0 0; } div.wikitabela-moduł.tabela-flex > table > tbody > tr > th:only-child, div.wikitabela-moduł.tabela-flex > table > tbody > tr > td:only-child{ margin:0; } @media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ div.wikitabela-moduł.tabela-prawo, div.wikitabela-moduł.tabela-lewo, div.wikitabela-moduł.tabela-centruj, div.wikitabela-moduł.tabela-brak{ display:block; max-width:100vw; width:100%; margin:0; padding:0; float:none; clear:none; } div.wikitabela-moduł.tabela-prawo > table, div.wikitabela-moduł.tabela-lewo > table, div.wikitabela-moduł.tabela-centruj > table, div.wikitabela-moduł.tabela-brak > table{ width:100%; box-sizing:border-box; } div.wikitabela-moduł.tabela-prawo > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar > span, div.wikitabela-moduł.tabela-lewo > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar > span, div.wikitabela-moduł.tabela-centruj > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar > span, div.wikitabela-moduł.tabela-brak > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar > span{ width:100% !important; height:100% !important; } div.wikitabela-moduł.tabela-prawo > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar, div.wikitabela-moduł.tabela-lewo > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar, div.wikitabela-moduł.tabela-centruj > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar, div.wikitabela-moduł.tabela-brak > table.tabela-media-plik-szerokość span.szablon_plik.szablon_plik_rozmiar{ width:100%; } } /*{{Kategoria|Moduły - arkusze stylów}}*/ 1axaj7m4vouweoubg7zf1yz8av5my8h Śpiewnik/Na Wawel, na Wawel 0 63991 553337 2026-08-27T17:15:48Z Ashaio 4702 nowa piosenka 553337 wikitext text/x-wiki {{T|Śpiewnik/NawigacjaOpis}} == Muzyka == '''Autor:''' nieznany (Piotr Studziński?) '''Opracowanie:''' Oskar Kolberg (1814–1890) <score raw="1" vorbis="1"> \version "2.19.0" \header{ title = "Na Wawel, na Wawel" poet = "Słowa: Edmund Wasilewski" composer = "Muzyka: Piotr Studziński (?)" arranger = "Opracowanie: Oskar Kolberg" tagline = "" } melodia = {\new Staff \with { midiInstrument = "fiddle" } \relative f'{ \clef treble \key f \major \time 2/4 \tempo 4 = 120 \autoBeamOff a8 g a bes | d8 c4 r8 | \repeat volta 2 { f8 \grace {a8} f e8. d16 | d8 c4 r8 | } bes8 d4 bes8 | a8 c4 a8 | g8 a << {\voiceOne \stemUp bes8 d } \new Voice {\voiceTwo \stemDown \autoBeamOff bes8 b } >> \oneVoice \stemNeutral | d8 c4 r8 | bes8 << {\voiceOne \stemUp d4 e8 } \new Voice {\voiceTwo \stemDown \autoBeamOff d4 bes8} >> \oneVoice \stemNeutral | << {\voiceOne \stemUp e8 c4 a16( f) } \new Voice {\voiceTwo \stemDown \autoBeamOff a8 c4 a8 } >> \oneVoice \stemNeutral | << {\voiceOne \stemUp \grace {e16 } g8 \grace {bes16} d8 } \new Voice {\voiceTwo \stemDown \autoBeamOff g,8 d' } >> \oneVoice \stemNeutral c8 e, | g8 f4 r8 | } \addlyrics{ \small { Na Wa -- wel, na Wa -- wel, Kra -- ko -- wia -- ku żwa -- wy, Po -- du -- maj, po -- tę -- sknij, Nad po -- mni -- kiem sła -- wy. Po -- du -- maj, po -- tę -- sknij, Nad po -- mni -- kiem sła -- wy. } } } \score{ \melodia \layout{} } \score{ \unfoldRepeats \melodia \midi{} } </score> '''Źródło:''' Na podstawie: Oskar Kolberg, ''[https://polona.pl/item-view/f92ae25f-266a-4649-94bf-c907958a2fbc?page=429 Lud : jego zwyczaje, sposób życia, mowa, podania, przysłowia, obrzędy, gusła, zabawy, pieśni, muzyka i tańce. Ser. 6, Krakowskie. Cz. 2]''. Kraków, 1873. S.&nbsp;410 (pieśń 659). == Tekst == '''Autor:''' Edmund Wasilewski {{Kolumny|2| <poem> 1. Na Wawel, na Wawel, Krakowiaku żwawy, (Krakowiaku żwawy), Podumaj, potęsknij, Nad pomnikiem sławy. (Podumaj, potęsknij, Nad pomnikiem sławy). 2. Dzieje twojej ziemi Na grobowcach czytaj, Twoich wodzów groby Uściskiem powitaj. 3. Popatrz się po górach, Po dołach, równinach, Niech dziewic miłośicą Krew ci spłynie w żyłach. 4. Tu twych ojców kości Bieleją spod sochy, Tam w powietrzu drgają Twoich braci prochy. (...) 6. Do snu ukołysaj, Niech się przyśnią tobie Tysiące, tysiące, Co już legły w grobie. </poem> }} '''Źródło:''' Franciszek Barański, ''[https://polona.pl/item-view/9df32064-1fac-4fe8-93c6-a2186dd3d37a?page=253 Jeszcze Polska nie zginęła! : pieśni patryotyczne i narodowe. Cz. 1-2]''. Lwów, [post 1910]. S.&nbsp;66 (pieśń 13). == Zobacz też == {{Wikiźródła|Na_Wawel|Na Wawel}} * ''[https://bibliotekapiosenki.pl/utwory/Na_Wawel Na Wawel]'' w serwisie ''[https://bibliotekapiosenki.pl/ Cyfrowa Biblioteka Polskiej Piosenki]'' hxy35wxzjruph6s7pado6e54444pf9k Śpiewnik/Na Wawel, na Wawel/Muzyka 0 63992 553338 2026-08-27T17:21:07Z Ashaio 4702 nowa melodia 553338 wikitext text/x-wiki {{T|Śpiewnik/NawigacjaMuzyka}} == Muzyka == '''Autor:''' nieznany (Piotr Studziński?) '''Aranżacja:''' Franciszek Barański <score raw="1" vorbis="1"> \version "2.19.0" \header{ title = "Na Wawel, na Wawel" poet = "Słowa: Edmund Wasilewski" %meter = "Opracowanie:" composer = "Muzyka: autor nieznany (Piotr Studziński?)" arranger = "Aranżacja: Franciszek Barański" tagline = "" } global = { \key es \major \time 2/4 \tempo 4=120 } \score{ \new PianoStaff << \new Staff = "RH" \relative c' { \clef treble \global % tu prawa ręka <es g>8. <d f>16 <es g>8 <f as> | <as c> <g bes>4 r8 | <c es>8. <c es>16 <bes d>8 <as c> | <as c>8 <g bes>4 r8 | <c es>8. <c es>16 <bes d>8 <as c> | <as c>8 <g bes>4 r8 | <f as>8 <as c>4 <f as>8 | <es g> <g bes>4 <es g>8 | <d f> <es g> <f as> <as c> | <as c> <g bes>4 r8 | <f as>8 <as c>4 <f as>8 | <es g> <g bes>4 <es g>8 | <as c>8. <g bes>16 <f as>8 d | <d f> <f bes,>4 r8 \bar "|." } \addlyrics{ \small { Na Wa -- wel, na Wa -- wel, Kra -- ko -- wia -- ku żwa -- wy, (Kra -- ko -- wia -- ku żwa -- wy), Po -- du -- maj, po -- tę -- sknij nad pom -- ni -- kiem sła -- wy, (Po -- du -- maj, po -- tę -- sknij nad pom -- ni -- kiem sła -- wy). } } \new Staff = "LH" { \clef bass \global % tu lewa ręka es,8[ <g bes>] es[ <g bes>] | es,[ <es g bes> <es g bes> <es g bes>] | as,[ <es as c'> <es as c'> <es as c'>] | es,[ <es g bes> <es g bes> <es g bes>] | as,[ <c es as> <c es as> <c es as>] | es,[ <es g bes> <es g bes> <es g bes>] | bes,[ <f as bes>] bes,[ <f as bes>] | es,[ <g bes>] es[ <g bes>] | bes,[ <as bes>] d[ <f as>] | es,[ <es g bes> <es g bes> <es g bes>] | bes,[ <f as>] d[ <f as>] | es[ <g bes>] bes,[ <g bes>] | bes,[ <f as bes>] bes,[ <f as bes>] | bes,8 <es g>4 r8 \bar "|." } >> \midi{} \layout{} } </score> '''Źródło:''' Franciszek Barański, ''[https://polona.pl/item-view/9df32064-1fac-4fe8-93c6-a2186dd3d37a?page=16 Jeszcze Polska nie zginęła! : pieśni patryotyczne i narodowe. Cz. 1-2]''. Lwów, [post 1910]. S.&nbsp;11 (pieśń 13). bczxtuony8lm6oaof4nj0yk0v4cmpbl Śpiewnik/Hej, tam pod lasem/Tekst 0 63993 553339 2026-08-27T17:30:38Z Ashaio 4702 nowa strona z tekstem piosenki 553339 wikitext text/x-wiki {{T|Śpiewnik/NawigacjaTekst}} == Tekst z ok. 1918 == '''Autor:''' nieznany '''Opracowanie:''' Bogusław Szul-Skjöldkrona {{Kolumny|2| <poem> 1. Hej tam pod lasem coś błyska z dala, Banda legunów ogień rozpala. 2. Wiara obsiadła ogień dookoła, Leci na pola piosnka wesoła. 3. Leci na pola, leci na łany, Śpiew nasz żołnierski, śpiew nasz kochany. 4. Śpiew krwią i śmiechem tkany obficie – O nucie twardej, jak nasze życie. </poem> }} '''Źródło:''' Bogusław Szul-Skjöldkrona, ''[https://polona.pl/item-view/371e734c-5829-424c-89f5-cc2e04cf5a72?page=28 Piosenki leguna tułacza]''. Warszwa, [post 1918]. S.&nbsp;21 (pieśń 18). fj4q2uec9ues9fngas9xcocyg6z3o4n Śpiewnik/Ja i butelka to dwaj przyjaciele 0 63994 553341 2026-08-27T18:47:16Z Ashaio 4702 nowa piosenka 553341 wikitext text/x-wiki {{T|Śpiewnik/NawigacjaOpis}} == Muzyka == '''Autor:''' nieznany '''Opracowanie:''' Stefan Surzyński <score raw="1" vorbis="1"> \version "2.19.0" \header{ title = "Ja i butelka" poet = "Słowa: autor nieznany" composer = "Muzyka: autor nieznany" arranger = "Opracowanie: Stefan Surzyński" tagline = "" } \score{ \new Staff \with {midiInstrument = "harmonica"} \relative a'{ \clef treble \key a \major \time 6/8 \tempo 4 = 120 \autoBeamOff a8->^\mf d, d a' d, d | a'8. cis16 b8 gis4 e8 | fis8^\markup{ \italic {cresc.}}\< fis fis e a b\! | cis8^\f cis dis e4 r8 | e8.^\ff e16 e8 fis,8. fis16 fis8 | d'8. d16 d8 e,8 e r | cis'8^\markup{ \italic {dolce}} cis cis cis8. b16 a8 | cis8->^\markup{ \italic {rall.}} b-> a-> e'4( dis8) | d4.\>( d8[) cis-> b->]\! | % --- a4^\p ^\markup{ \italic {a tempo}} r8 a r4 | a8 a a a\< a a\! | fis'8^\ff r8 r8 r4 \fermata r8 | cis8.-.^\markup{ \italic {dolce}} b16-. a8-. a-. gis-. r8 | cis8. b16 a8 a gis r | \time 4/4 a4^\f ^\markup{ \italic {Vivace}} b8. b16 cis4 d8 dis | e4 gis,8. gis16 a4 r8 \bar "|." } \addlyrics{ \small { Ja i bu -- tel -- ka, to dwaj przy -- ja -- cie -- le, ja z_nią, a o -- na też ze mną się zna. Choć -- by się świat za -- paść miał, dbam nie -- wie -- le, Pó -- ki nie spi -- ję wszy -- stkie -- go do dna _ Gul, gul, gul, gul, gul, gul, gul, gul, gul. To mi to pro -- szę! To mi roz -- ko -- sze! Przy nich ja wiel -- kim się czu -- ję, jak król. } } \midi{} \layout{} } </score> '''Źródło:''' Stefan Surzyński, ''[https://polona.pl/item-view/02a09028-4548-4560-a997-ca77a14a6f88?page=150 Echo polskie : największy zbiór pieśni polskich obyczajowych i okolicznościowych (...) z melodyami. T. 2]''. Tarnów, [ok. 1912]. S.&nbsp;147–148. == Tekst == '''Autor:''' nieznany {{Kolumny|3| <poem> 1. Ja i butelka, to dwaj przyjaciele, Ja z nią, a ona też ze mną się zna. Choćby się świat zapaść miał, dbam niewiele, Póki nie spiję wszystkiego do dna. Gul, gul, gul gul gul, gul gul gul, gul! To mi to proszę, to mi rozkosze, Przy nich ja wielkim się czuję, jak król. 2. Woli niejedne przestawać z dziewczyną, Potem zaś z tego niesnaski i kwas; Najprzód nazywa ją swoją jedyną, Potem i kłótnie i gniew, bo to raz! Gul, gul, gul gul gul, gul gul gul, gul! To mi to proszę, to mi rozkosze, Nie potrzebuję pracować, jak mól! 3. Kiedy się losy sprzysięgną okrutne, Żeby mi radość zamącić na złość, Dla mnie to wszysto są fraszki wierutne: Ściskam butelkę i na tem im dość! Gul, gul, gul gul gul, gul gul gul, gul! W tem ukojenie, w tem wybawienie, Flaszka najlepsze lekarstwo na ból! </poem> }} '''Źródło:''' Stefan Surzyński, ''[https://polona.pl/item-view/02a09028-4548-4560-a997-ca77a14a6f88?page=150 Echo polskie : największy zbiór pieśni polskich obyczajowych i okolicznościowych (...) z melodyami. T. 2]''. Tarnów, [ok. 1912]. S.&nbsp;147–148. g2jr2nt1nzl2ebbe9ncdpwtq1086x1a Szablon:Font/styles.css 10 63995 553352 2026-08-27T21:09:14Z Persino 2851 Utworzono nową stronę „.span-font{ font-weight:inherit; font-variant:inherit; font-style:inherit; line-height:inherit; color:inherit; letter-spacing:inherit; background-color:transparent; border:0 solid transparent; display:inline; box-sizing:border-box; position:relative; } /*{{Kategoria|Szablony - arkusze stylów}}*/” 553352 sanitized-css text/css .span-font{ font-weight:inherit; font-variant:inherit; font-style:inherit; line-height:inherit; color:inherit; letter-spacing:inherit; background-color:transparent; border:0 solid transparent; display:inline; box-sizing:border-box; position:relative; } /*{{Kategoria|Szablony - arkusze stylów}}*/ jcdb9tv6vxhpgz7hr3gq7xhzy8t7cy7 553353 553352 2026-08-27T21:09:26Z Persino 2851 553353 sanitized-css text/css .span-font{ font-weight:inherit; font-variant:inherit; font-style:inherit; line-height:inherit; color:inherit; letter-spacing:inherit; background-color:transparent; border:0 solid transparent; display:inline; box-sizing:border-box; position:relative; } /*{{Kategoria|Szablony - arkusze stylów}}*/ lqhph0kle4uh0ahk1sifd33p7nrpgz3 553356 553353 2026-08-27T21:47:20Z Persino 2851 553356 sanitized-css text/css .span-font{ font-family:inherit; font-size:inherit; font-weight:inherit; font-variant:inherit; font-style:inherit; line-height:inherit; color:inherit; letter-spacing:inherit; background-color:transparent; border:0 solid transparent; display:inline; box-sizing:border-box; position:relative; } /*{{Kategoria|Szablony - arkusze stylów}}*/ qu8g6o72tfqp9llwyg9ce8rlziow1ax 553359 553356 2026-08-27T22:11:44Z Persino 2851 553359 sanitized-css text/css .span-font_style{ font-family:inherit; font-size:inherit; font-weight:inherit; font-variant:inherit; font-style:inherit; line-height:inherit; color:inherit; letter-spacing:inherit; background-color:transparent; border:0 solid transparent; display:inline; box-sizing:border-box; position:relative; } /*{{Kategoria|Szablony - arkusze stylów}}*/ qgaj1c9heshj13na2hapklegk15i92s