Wikibooks plwikibooks https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna MediaWiki 1.46.0-wmf.24 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 Książka kucharska/Barszcz czerwony 0 10355 539997 514512 2026-04-18T08:13:22Z EdytaT 2664 /* Składniki */ 539997 wikitext text/x-wiki [[Grafika:Barszcz.jpg|thumb|260px|Czysty barszcz czerwony]] == Składniki == *''1 kg buraków'' *''5 g suszonych grzybów'' *''80 g cebuli'' *''100 g jabłka'' *''2 zielone liście pora'' *''1 gałązka świeżego tymianku'' *''1 [[Zioła i przyprawy/Wawrzyn szlachetny|liść laurowy]]'' *''2 gałązki natki pietruszki'' *''1 gałązka selera naciowego'' *''2 ząbki czosnku'' *''10 g cukru'' *''sok z 1 cytryny'' *''majeranek'' *''sól'' *''czarny pieprz (w ziarenkach)'' *''ocet winny czerwony'' *''1 litr wody lub [[Książka kucharska/Bulion wołowy|wywaru wołowego]]'' *''zakwas buraczany'' == Przygotowanie zakwasu == ;Składniki *''3 średnie buraki (półplastry)'' *''2 kromki chleba razowego (pokruszone)'' *''4 główki czosnku (na połowy)'' Przełożyć do słoika, zalać letnią wodą, zakręcić wieko i odstawić w ciemne miejsce o temperaturze pokojowej na około 5 dni. == Przygotowanie warzyw == Grzyby dokładnie umyć, namoczyć i oddzielnie ugotować w wodzie, w której się moczyły. Po ugotowaniu wywar z grzybów starannie zlać dla oddzielenia drobin piasku od czystego wywaru. Buraki i cebule pokroić w plastry. Jabłka (razem ze skórką) podzielić na cząstki. Obrany czosnek przepołowić. == Przyrządzenie barszczu == Przygotowane warzywa zalać zimną wodą lub zimnym, jasnym, klarownym wywarem wołowym (bez tłuszczu), dołożyć grzyby i dodać wywar z ich gotowania. Następnie wrzucić wszystkie przyprawy i bukiet przypraw, wlać przygotowany zakwas. Gotować bardzo krótko – maksymalnie 10 minut od chwili zagotowania. Pod koniec dolać soku z cytryny i odrobinę dobrego octu winnego. Barszczu nigdy nie należy długo gotować, gdyż traci on kolor, aromat i smak buraków. Pod koniec gotowania można do niego dodać nieco czerwonego wina – lecz bardzo niewiele, aby nie zakłóciło delikatnego smaku i aromatu buraków. == Wykończenie == Po ugotowaniu nieodcedzony barszcz pozostawić w chłodnym miejscu do dnia następnego, aby naciągnął smakiem buraków, grzybów i warzyw. == Sposób podania == Następnego dnia barszcz przecedzić, zagrzać (ale go nie zagotować!) i (jeśli to konieczne) doprawić do smaku solą, cukrem oraz świeżo zmielonym pieprzem. Tuż przed serwowaniem można dorzucić jeszcze pestki ze świeżego ogórka i chwilowo nakryć pokrywką. Zupę podawać czystą z dodatkami: pasztecikami, kołdunami i krokietami. {{Wikiźródła|365 obiadów za 5 złotych/Barszcz czysty|Barszcz czysty w ''365 obiadów za 5 złotych''}} {{BrClear}} <noinclude> {{SortKuchWolumin|Barszcze|Kuchnia wegetariańska}} </noinclude> 0knvs3vzmm4ruaf2cezumz6jgfbs54j 540005 539997 2026-04-18T09:44:48Z EdytaT 2664 540005 wikitext text/x-wiki [[Grafika:Barszcz.jpg|thumb|260px|Czysty barszcz czerwony]] == Składniki == *''1 kg buraków'' *''5 g suszonych grzybów'' *''80 g cebuli'' *''100 g jabłka'' *''2 zielone liście pora'' *''1 gałązka świeżego tymianku'' *''1 [[Zioła i przyprawy/liść laurowy|liść laurowy]]'' *''2 gałązki natki pietruszki'' *''1 gałązka selera naciowego'' *''2 ząbki czosnku'' *''10 g cukru'' *''sok z 1 cytryny'' *''majeranek'' *''sól'' *''czarny pieprz (w ziarenkach)'' *''ocet winny czerwony'' *''1 litr wody lub [[Książka kucharska/Bulion wołowy|wywaru wołowego]]'' *''zakwas buraczany'' == Przygotowanie zakwasu == ;Składniki *''3 średnie buraki (półplastry)'' *''2 kromki chleba razowego (pokruszone)'' *''4 główki czosnku (na połowy)'' Przełożyć do słoika, zalać letnią wodą, zakręcić wieko i odstawić w ciemne miejsce o temperaturze pokojowej na około 5 dni. == Przygotowanie warzyw == Grzyby dokładnie umyć, namoczyć i oddzielnie ugotować w wodzie, w której się moczyły. Po ugotowaniu wywar z grzybów starannie zlać dla oddzielenia drobin piasku od czystego wywaru. Buraki i cebule pokroić w plastry. Jabłka (razem ze skórką) podzielić na cząstki. Obrany czosnek przepołowić. == Przyrządzenie barszczu == Przygotowane warzywa zalać zimną wodą lub zimnym, jasnym, klarownym wywarem wołowym (bez tłuszczu), dołożyć grzyby i dodać wywar z ich gotowania. Następnie wrzucić wszystkie przyprawy i bukiet przypraw, wlać przygotowany zakwas. Gotować bardzo krótko – maksymalnie 10 minut od chwili zagotowania. Pod koniec dolać soku z cytryny i odrobinę dobrego octu winnego. Barszczu nigdy nie należy długo gotować, gdyż traci on kolor, aromat i smak buraków. Pod koniec gotowania można do niego dodać nieco czerwonego wina – lecz bardzo niewiele, aby nie zakłóciło delikatnego smaku i aromatu buraków. == Wykończenie == Po ugotowaniu nieodcedzony barszcz pozostawić w chłodnym miejscu do dnia następnego, aby naciągnął smakiem buraków, grzybów i warzyw. == Sposób podania == Następnego dnia barszcz przecedzić, zagrzać (ale go nie zagotować!) i (jeśli to konieczne) doprawić do smaku solą, cukrem oraz świeżo zmielonym pieprzem. Tuż przed serwowaniem można dorzucić jeszcze pestki ze świeżego ogórka i chwilowo nakryć pokrywką. Zupę podawać czystą z dodatkami: pasztecikami, kołdunami i krokietami. {{Wikiźródła|365 obiadów za 5 złotych/Barszcz czysty|Barszcz czysty w ''365 obiadów za 5 złotych''}} {{BrClear}} <noinclude> {{SortKuchWolumin|Barszcze|Kuchnia wegetariańska}} </noinclude> 7izosc128p24uc4eclbx3zk7o1v0dc9 540006 540005 2026-04-18T09:45:04Z EdytaT 2664 /* Składniki */ 540006 wikitext text/x-wiki [[Grafika:Barszcz.jpg|thumb|260px|Czysty barszcz czerwony]] == Składniki == *''1 kg buraków'' *''5 g suszonych grzybów'' *''80 g cebuli'' *''100 g jabłka'' *''2 zielone liście pora'' *''1 gałązka świeżego tymianku'' *''1 [[Zioła i przyprawy/Liść laurowy|liść laurowy]]'' *''2 gałązki natki pietruszki'' *''1 gałązka selera naciowego'' *''2 ząbki czosnku'' *''10 g cukru'' *''sok z 1 cytryny'' *''majeranek'' *''sól'' *''czarny pieprz (w ziarenkach)'' *''ocet winny czerwony'' *''1 litr wody lub [[Książka kucharska/Bulion wołowy|wywaru wołowego]]'' *''zakwas buraczany'' == Przygotowanie zakwasu == ;Składniki *''3 średnie buraki (półplastry)'' *''2 kromki chleba razowego (pokruszone)'' *''4 główki czosnku (na połowy)'' Przełożyć do słoika, zalać letnią wodą, zakręcić wieko i odstawić w ciemne miejsce o temperaturze pokojowej na około 5 dni. == Przygotowanie warzyw == Grzyby dokładnie umyć, namoczyć i oddzielnie ugotować w wodzie, w której się moczyły. Po ugotowaniu wywar z grzybów starannie zlać dla oddzielenia drobin piasku od czystego wywaru. Buraki i cebule pokroić w plastry. Jabłka (razem ze skórką) podzielić na cząstki. Obrany czosnek przepołowić. == Przyrządzenie barszczu == Przygotowane warzywa zalać zimną wodą lub zimnym, jasnym, klarownym wywarem wołowym (bez tłuszczu), dołożyć grzyby i dodać wywar z ich gotowania. Następnie wrzucić wszystkie przyprawy i bukiet przypraw, wlać przygotowany zakwas. Gotować bardzo krótko – maksymalnie 10 minut od chwili zagotowania. Pod koniec dolać soku z cytryny i odrobinę dobrego octu winnego. Barszczu nigdy nie należy długo gotować, gdyż traci on kolor, aromat i smak buraków. Pod koniec gotowania można do niego dodać nieco czerwonego wina – lecz bardzo niewiele, aby nie zakłóciło delikatnego smaku i aromatu buraków. == Wykończenie == Po ugotowaniu nieodcedzony barszcz pozostawić w chłodnym miejscu do dnia następnego, aby naciągnął smakiem buraków, grzybów i warzyw. == Sposób podania == Następnego dnia barszcz przecedzić, zagrzać (ale go nie zagotować!) i (jeśli to konieczne) doprawić do smaku solą, cukrem oraz świeżo zmielonym pieprzem. Tuż przed serwowaniem można dorzucić jeszcze pestki ze świeżego ogórka i chwilowo nakryć pokrywką. Zupę podawać czystą z dodatkami: pasztecikami, kołdunami i krokietami. {{Wikiźródła|365 obiadów za 5 złotych/Barszcz czysty|Barszcz czysty w ''365 obiadów za 5 złotych''}} {{BrClear}} <noinclude> {{SortKuchWolumin|Barszcze|Kuchnia wegetariańska}} </noinclude> mi4o1pdvqkgdtip1urw9v9u6ado19v1 Szablon:LinkOgólne 10 48164 539969 535665 2026-04-17T18:51:48Z Persino 2851 539969 wikitext text/x-wiki <includeonly>{{#if:{{{bez znaczników|}}}||<templatestyles src="Szablon:Link_wewnętrzny/styles.css" />}}{{#invoke:Linki|LinkOgólne}}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s do sprawdzenia{{))}} | 1 = txt! | 2 = txt;!alias miana przestrzeni nazw?!;!alias?!;!a?! | za = ;z | z = ;za | po = ;p | p = ;po | dyskusja = ;d | d = ;dyskusja | klucz projektu = ;kod języka;kod projektu;k | k = ;kod języka;kod projektu;klucz projektu | kod języka = ;klucz projektu;kj | kj = ;klucz projektu;kod języka | kod projektu = ;klucz projektu;kp | kp = ;klucz projektu;kod projektu | miano przestrzeni nazw = ;m;przestrzeń | przestrzeń = ;miano przestrzeni nazw;m | m = ;miano przestrzeni nazw;przestrzeń | alias miana przestrzeni nazw = ;alias;i | alias = ;alias miana przestrzeni nazw;i | i = ;alias miana przestrzeni nazw;alias | wyświetl miano przestrzeni nazw = ;w;wyświetl | wyświetl = ;wyświetl miano przestrzeni nazw;w | w = ;wyświetl miano przestrzeni nazw;wyświetl | bez znaczników = ;bz | bz = ;bez znaczników | bez przetwarzania = ;bp | bp = ;bez przetwarzania | bez przetwarzania kodów = | analiza = ;a | a = ;analiza | uri = ;u | u = ;uri }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 03hjd69btxarzoez23q4gyyezilkk72 539970 539969 2026-04-17T18:56:07Z Persino 2851 539970 wikitext text/x-wiki <includeonly>{{#if:{{{bez znaczników|}}}||<templatestyles src="Szablon:Link_wewnętrzny/styles.css" />}}{{#invoke:Linki|LinkOgólne}}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s do sprawdzenia{{))}} | 1 = txt! | 2 = txt;!alias miana przestrzeni nazw?!;!alias?!;!a?! | za = ;z | z = ;za | po = ;p | p = ;po | dyskusja = ;d | d = ;dyskusja | klucz projektu = ;kod języka;kod projektu;k | k = ;kod języka;kod projektu;klucz projektu | kod języka = ;klucz projektu;kj | kj = ;klucz projektu;kod języka | kod projektu = ;klucz projektu;kp | kp = ;klucz projektu;kod projektu | miano przestrzeni nazw = ;m;przestrzeń | przestrzeń = ;miano przestrzeni nazw;m | m = ;miano przestrzeni nazw;przestrzeń | alias miana przestrzeni nazw = ;alias;i | alias = ;alias miana przestrzeni nazw;i | i = ;alias miana przestrzeni nazw;alias | wyświetl miano przestrzeni nazw = ;w;wyświetl | wyświetl = ;wyświetl miano przestrzeni nazw;w | w = ;wyświetl miano przestrzeni nazw;wyświetl | bez znaczników = ;bz | bz = ;bez znaczników | bez przetwarzania = ;bp | bp = ;bez przetwarzania | bez przetwarzania kodów = ;bk | bk = ;bez przetwarzania kodów | analiza = ;a | a = ;analiza | uri = ;u | u = ;uri }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 18e828z3noo0vvfinngnjmlpc607z5b 539986 539970 2026-04-17T19:24:22Z Persino 2851 539986 wikitext text/x-wiki <includeonly>{{#if:{{{bez znaczników|{{{bz|}}}}}}||<templatestyles src="Szablon:Link_wewnętrzny/styles.css" />}}{{#invoke:Linki|LinkOgólne}}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s do sprawdzenia{{))}} | 1 = txt! | 2 = txt;!alias miana przestrzeni nazw?!;!alias?!;!a?! | za = ;z | z = ;za | po = ;p | p = ;po | dyskusja = ;d | d = ;dyskusja | klucz projektu = ;kod języka;kod projektu;k | k = ;kod języka;kod projektu;klucz projektu | kod języka = ;klucz projektu;kj | kj = ;klucz projektu;kod języka | kod projektu = ;klucz projektu;kp | kp = ;klucz projektu;kod projektu | miano przestrzeni nazw = ;m;przestrzeń | przestrzeń = ;miano przestrzeni nazw;m | m = ;miano przestrzeni nazw;przestrzeń | alias miana przestrzeni nazw = ;alias;i | alias = ;alias miana przestrzeni nazw;i | i = ;alias miana przestrzeni nazw;alias | wyświetl miano przestrzeni nazw = ;w;wyświetl | wyświetl = ;wyświetl miano przestrzeni nazw;w | w = ;wyświetl miano przestrzeni nazw;wyświetl | bez znaczników = ;bz | bz = ;bez znaczników | bez przetwarzania = ;bp | bp = ;bez przetwarzania | bez przetwarzania kodów = ;bk | bk = ;bez przetwarzania kodów | analiza = ;a | a = ;analiza | uri = ;u | u = ;uri }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> c8ewuz24chbp6nv46b0u7n6ydql2v4i Szablon:Jednostki dane CHN 10 50537 539975 517895 2026-04-17T19:11:15Z Persino 2851 539975 wikitext text/x-wiki {{ {{{1<noinclude>|jednostki dane/opis</noinclude>}}} | jednostka 1 = {{#switch:{{WydobądźLinki|{{{wariant 1}}}}} |{{lpg|Kuangsi|bz=tak|a=tak}} |{{lpg|Mongolia Wewnętrzna|bz=tak|a=tak}} |{{lpg|Ningxia|bz=tak|a=tak}} |{{lpg|Sinciang|bz=tak|a=tak}} |{{lpg|Tybet|bz=tak|a=tak}} = {{lpg|Podział administracyjny Chińskiej Republiki Ludowej|Region autonomiczny}} |{{lpg|Chongqing|bz=tak|a=tak}} |{{lpg|Pekin|bz=tak|a=tak}} |{{lpg|Szanghaj|bz=tak|a=tak}} |{{lpg|Tiencin|bz=tak|a=tak}} = {{lpg|Podział administracyjny Chińskiej Republiki Ludowej|Miasto wydzielone}} |{{lpg|Podział administracyjny Chińskiej Republiki Ludowej|Prowincja}} }} | jednostka 2 = {{#switch:{{WydobądźLinki|{{{wariant 1}}}}} |{{lpg|Mongolia Wewnętrzna|bz=tak|a=tak}} = Związek |Prefektura }} | jednostka 3 = {{#switch:{{WydobądźLinki|{{{wariant 1}}}}} |{{lpg|Mongolia Wewnętrzna|bz=tak|a=tak}} = Chorągiew |Powiat }} | jednostka 4 = | jednostka 5 = | nazwa = {{{nazwa}}} }} buv5flaa4xl41fymv5nqkszky0bqu3k Szablon:Jednostki dane IND 10 50585 539978 517939 2026-04-17T19:13:12Z Persino 2851 539978 wikitext text/x-wiki {{ {{{1<noinclude>|jednostki dane/opis</noinclude>}}} | jednostka 1 = {{#switch:{{WydobądźLinki|{{{wariant 1}}}}} |Andamany i Nikobary|{{lpg|Andamany i Nikobary|bz=tak|a=tak}} |Czandigarh|{{lpg|Czandigarh|bz=tak|a=tak}} |Dadra i Nagarhaweli|{{lpg|Dadra i Nagarhaweli|bz=tak|a=tak}} |Daman i Diu|{{lpg|Daman i Diu|bz=tak|a=tak}} |Lakszadiwy|{{lpg|Lakszadiwy|bz=tak|a=tak}} |Puducherry|{{lpg|Puducherry|bz=tak|a=tak}} = {{lpg|Terytorium związkowe (Indie)|Terytorium związkowe}} |Delhi|{{lpg|Delhi|bz=tak|a=tak}} = {{lpg|Terytorium Stołeczne Delhi|Terytorium Stołeczne}} |{{lpg|Podział administracyjny Indii|Stan}} }} | jednostka 2 = Region | jednostka 3 = {{lpg|Dystrykty w Indiach|Dystrykt}} | jednostka 4 = | jednostka 5 = | nazwa = {{{nazwa}}} }} jf5t5vyz4g93zll7njw5vq16x5l5fmo Szablon:Jednostki dane KGZ 10 50597 539979 517950 2026-04-17T19:14:28Z Persino 2851 539979 wikitext text/x-wiki {{ {{{1<noinclude>|jednostki dane/opis</noinclude>}}} | jednostka 1 = {{#switch:{{WydobądźLinki|{{{warunek 1}}}}} |{{lpg|Biszkek|bz=tak|a=tak}} |{{lpg|Osz|bz=tak|a=tak}} = {{lpg|Podział administracyjny Kirgistanu|Miasto wydzielone}} |{{lpg|Podział administracyjny Kirgistanu|Obwód}} }} | jednostka 2 = Rejon | jednostka 3 = | jednostka 4 = | jednostka 5 = | nazwa = {{{nazwa}}} }} hvg3282seg6am3gtptbxssjkwpu00h4 Szablon:Jednostki dane LAO 10 50604 539980 517957 2026-04-17T19:15:34Z Persino 2851 539980 wikitext text/x-wiki {{ {{{1<noinclude>|jednostki dane/opis</noinclude>}}} | jednostka 1 = {{#ifeq:{{WydobądźLinki|{{{wariant 1}}}}}|{{lpg|Prefektura Wientian|Wientian|bz=tak|a=tak}}|{{lpg|Podział administracyjny Laosu|Prefektura}}|{{lpg|Podział administracyjny Laosu|Prowincja}}}} | jednostka 2 = | jednostka 3 = | jednostka 4 = | jednostka 5 = | nazwa = {{{nazwa}}} }} 74j3xmdyy877hic3jt48rw8nx9jwszi Szablon:Jednostki dane MMR 10 50625 539981 517974 2026-04-17T19:17:06Z Persino 2851 539981 wikitext text/x-wiki {{ {{{1<noinclude>|jednostki dane/opis</noinclude>}}} | jednostka 1 = {{#switch:{{WydobądźLinki|{{{wariant 1}}}}} |{{lpg|Arakan|bz=tak|a=tak}} |{{lpg|Czin (stan)|Czin|bz=tak|a=tak}} |{{lpg|Kaczin|bz=tak|a=tak}} |{{lpg|Kaja (stan)|Kaja|bz=tak|a=tak}} |{{lpg|Karen (stan)|Karen|bz=tak|a=tak}} |{{lpg|Mon (stan)|Mon|bz=tak|a=tak}} |{{lpg|Szan|bz=tak|a=tak}} = {{lpg|Podział administracyjny Mjanmy|Stan}} |{{lpg|Podział administracyjny Mjanmy|Prowincja}} }} | jednostka 2 = Dystrykt | jednostka 3 = Township | jednostka 4 = | jednostka 5 = | nazwa = {{{nazwa}}} }} sd2v8g4pe3czmn1g7fhhk4u16p7ogqi Szablon:Jednostki dane MUS 10 50630 539982 517979 2026-04-17T19:18:08Z Persino 2851 539982 wikitext text/x-wiki {{ {{{1<noinclude>|jednostki dane/opis</noinclude>}}} | jednostka 1 = {{#switch:{{WydobądźLinki|{{{wariant 1}}}}} |{{lpg|Wyspy Agalega|bz=tak|a=tak}} |{{lpg|Cargados Carajos|bz=tak|a=tak}} |{{lpg|Rodrigues|bz=tak|a=tak}} = {{lpg|Podział administracyjny Mauritiusa|Dependencja}} |{{lpg|Podział administracyjny Mauritiusa|Dystrykt}} }} | jednostka 2 = | jednostka 3 = | jednostka 4 = | jednostka 5 = | nazwa = {{{nazwa}}} }} k5avql61hioncqcmzm1uu71sa0lugyg Szablon:Jednostki dane NIC 10 50637 539983 517986 2026-04-17T19:19:23Z Persino 2851 539983 wikitext text/x-wiki {{ {{{1<noinclude>|jednostki dane/opis</noinclude>}}} | jednostka 1 = {{#switch:{{WydobądźLinki|{{{wariant 1}}}}} |{{lpg|Region Autonomiczny Atlántico Norte|Atlántico Norte|bz=tak|a=tak}} |{{lpg|Region Autonomiczny Atlántico Sur|Atlántico Sur|bz=tak|a=tak}} = {{lpg|Podział administracyjny Nikaragui|Region autonomiczny}} |{{lpg|Podział administracyjny Nikaragui|Departament}} }} | jednostka 2 = Gmina | jednostka 3 = | jednostka 4 = | jednostka 5 = | nazwa = {{{nazwa}}} }} 9n3e26plq0xl0hpx64mrh1kh1dq1cef Szablon:Jednostki dane OMN 10 50643 539984 517991 2026-04-17T19:20:20Z Persino 2851 539984 wikitext text/x-wiki {{ {{{1<noinclude>|jednostki dane/opis</noinclude>}}} | jednostka 1 = {{#switch:{{WydobądźLinki|{{{wariant 1}}}}} |{{lpg|Muhafazat Maskat|Maskat|bz=tak|a=tak}} |{{lpg|Muhafazat Musandam|Musandam|bz=tak|a=tak}} |{{lpg|Muhafazat Zufar|Zufar|bz=tak|a=tak}} |{{lpg|Muhafazat al-Burajmi|bz=tak|a=tak}} = {{lpg|Podział administracyjny Omanu|Muhafaza}} |{{lpg|Podział administracyjny Omanu|Region}} }} | jednostka 2 = Wilajet | jednostka 3 = | jednostka 4 = | jednostka 5 = | nazwa = {{{nazwa}}} }} 678183qni6711flh3qhr0uozt416s7n Szablon:Jednostki dane PAK 10 50644 539985 517992 2026-04-17T19:21:20Z Persino 2851 539985 wikitext text/x-wiki {{ {{{1<noinclude>|jednostki dane/opis</noinclude>}}} | jednostka 1 = {{#switch:{{WydobądźLinki|{{{wariant 1}}}}} |{{lpg|Stołeczne Terytorium Islamabadu|bz=tak|a=tak}} |{{lpg|Terytoria Plemienne Administrowane Federalnie|bz=tak|a=tak}} = {{lpg|Podział administracyjny Pakistanu|Terytorium}} |{{lpg|Azad Dżammu i Kaszmir|bz=tak|a=tak}} |{{lpg|Gilgit-Baltistan|bz=tak|a=tak}} = {{lpg|Podział administracyjny Pakistanu|Region}} |{{lpg|Podział administracyjny Pakistanu|Prowincja}} }} | jednostka 2 = Dystrykt | jednostka 3 = | jednostka 4 = | jednostka 5 = | nazwa = {{{nazwa}}} }} 1m1zj5103u587oymfql5wroi0pvecuh Śpiewnik 0 54239 540022 539280 2026-04-18T11:53:06Z Ashaio 4702 dodanie 3 piosenek 540022 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). Minimalną 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|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|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|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|God Save the King}} # {{sr|Góralu, czy ci nie żal}} # {{sr|Greensleeves}} # {{sr|Hatikvah}} # {{sr|Hej hej, hej hej, do kniej, do kniej}} # {{sr|Hej koledzy, po mozołach }} # {{sr|Hej koledzy, z wspólnej czary}} # {{sr|Hej, z góry, z góry jadą Mazury}} # {{sr|Hej, żeglujże, żeglarzu}} # {{sr|Idzie żołnierz borem, lasem}} # {{sr|Jak dobrze nam}} # {{sr|Jak to na wojence ładnie}} # {{sr|Jesienią}} # {{sr|Jeszcze jeden mazur dzisiaj}} # {{sr|Kołysanka Brahmsa}} # {{sr|Komu dzwonią, temu dzwonią}} # {{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|Lilie}} # {{sr|Lulajże, Jezuniu}} # {{sr|Lutni moja ulubiona}} # {{sr|Małgorzatka}} # {{sr|Marsylianka}} # {{sr|Marzenie o grajku}} # {{sr|Mazurek Dąbrowskiego}} # {{sr|Mizerna, cicha}} # {{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|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|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|Przyjechał Jasieńko}} # {{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łynie Gopło i Kruszwica }} # {{sr|Spuśćcie nam na ziemskie niwy}} # {{sr|Staropolskie zaloty}} # {{sr|Szynkareczko, szafareczko}} # {{sr|Śliczne gwoździki, piękne tulipany ‎}} # {{sr|Śnieżyca}} # {{sr|Śród opok i jarów}} # {{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żyjmy dziś żywota}} # {{sr|W krwawem polu srebrne ptaszę}} # {{sr|Veni Creator}} # {{sr|W głos serdeczna dumka płynie }} # {{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 Niemen het precz}} # {{sr|Zajączek}} # {{sr|Zdrowaś bądź Maryja}} # {{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}} sxwiqzz1nkd921avxllrtw7mnlvzagd Śpiewnik/Indeks tematyczny 0 56092 539992 538909 2026-04-17T20:18:46Z Ashaio 4702 dodanie 5 piosenek 539992 wikitext text/x-wiki __NOTOC__ Poniższe grupy nie są rozłączne (piosenka może należeć do więcej niż jednej kategorii).<br> {| cellspacing="10" width="100%" | width=50% | | width=50% | |- |{{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|Mazurek Dąbrowskiego}} * {{sr|O Matko Polko}} * {{sr|Rota}} * {{sr|Święta miłości kochanej ojczyzny}} * {{sr|Witaj majowa jutrzenko}} }} |{{Pudełko komórkowe 3|tytuł= Piosenki wojskowe |grafika= |tekst=* {{sr|Bartoszu, Bartoszu}} * {{sr|Bywaj dziewczę zdrowe}} * {{sr|Duma ukrainna}} * {{sr|Idzie żołnierz borem, lasem}} * {{sr|Jak to na wojence ładnie}} * {{sr|Jeszcze jeden mazur dzisiaj}} * {{sr|O mój rozmarynie}} * {{sr|Tam na błoniu błyszczy kwiecie}} * {{sr|W krwawem polu srebrne ptaszę}} * {{sr|Wojenko, wojenko}} * {{sr|Za Niemen het precz}} }} |- |{{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}} }} |{{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}} * {{sr|Anioł pasterzom mówił}} * {{sr|Bóg się rodzi}} * {{sr|Cicha noc}} * {{sr|Dzisiaj w Betlejem}} * {{sr|Gdy się Chrystus rodzi}} * {{sr|Lulajże, Jezuniu}} * {{sr|Mizerna, cicha}} * {{sr|O, gwiazdeczko, coś świeciła}} * {{sr|Przybieżeli do Betlejem}} * {{sr|W żłobie leży}} * {{sr|Witaj gwiazdko złota}} }} |- |{{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|Leć głosie po rosie, po niskiej leszczynie}} * {{sr|Leć głosie po rosie, prosto ku laskowi }} * {{sr|Oj, chmielu, chmielu}} * {{sr|Piękna nasza Polska cała}} * {{sr|Płynie Wisła, płynie}} * {{sr|Umarł Maciek, umarł}} * {{sr|W murowanej piwnicy}} * {{sr|W polu lipeńka}} * {{sr|Zakochali się}} }} |{{Pudełko komórkowe 3|tytuł= Piosenki dla dzieci |grafika= |tekst= {{Wikiźródła|Śpiewnik dla dzieci}} * {{sr|Jesienią}} * {{sr|Kołysanka Brahmsa }} * {{sr|Kukułeczka}} * {{sr|Ogródek}} * {{sr|Śnieżyca}} * {{sr|W polu}} * {{sr|Zajączek}} * {{sr|Zła zima}} }} |- |{{Pudełko komórkowe 2 |tytuł= Piosenki o miłości |grafika= |tekst=* {{sr|Dalibóg, że powiem mamie}} * {{sr|Laura i Filon}} * {{sr|Marzenie o grajku }} * {{sr|Panicz i dziewczyna }} * {{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|Życzenie}} }} |{{Pudełko komórkowe 4 |tytuł= Piosenki młodzieżowe |grafika= |tekst=* {{sr|Gaudeamus igitur}} * {{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|Polska młodzież niech nam żyje}} * {{sr|Upływa szybko życie}} * {{sr|Użyjmy dziś żywota}} * {{sr|Sadźmy, przyjacielu, róże}} * {{sr|Żal, żal za jedyną}} }} |- |{{Pudełko komórkowe 1|tytuł= Piosenki biesiadne |grafika= |tekst= * {{sr|Kiedy nam się pora zdarza}} * {{sr|Komu dzwonią, temu dzwonią}} * {{sr|Kurdesz}} * {{sr|Małgorzatka}} * {{sr|Pije Kuba do Jakuba}} * {{sr|Precz, precz od nas smutek wszelki}} * {{sr|Szlachetne zdrowie}} * {{sr|Szynkareczko, szafareczko}} * {{sr|Ten mem zdaniem dobrze żyje}} * {{sr|Wdzięczna miłości kochanej szklanice }} * {{sr|Wesoło, bracia, wesoło}} }} |{{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|Za Niemen het precz}} '''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}} '''Tęsknota za krajem rodzinnym:''' * {{sr|Góralu, czy ci nie żal}} }} |- |{{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|Krakowianka i kat}} * {{sr|Podolanka}} * {{sr|Przyjechał Jasieńko}} * {{sr|Stała nam się nowina}} → {{sr|Lilie}} * {{sr|W okolicznem mieście}} * {{sr|Zielony dzban}} }} |{{Pudełko komórkowe 4|tytuł= Piosenki wędrówkowe |grafika= |tekst='''Piosenki łowieckie:''' * {{sr|Hej hej, hej hej, do kniej, do kniej}} * {{sr|Pojedziemy na łów}} * {{sr|Siedzi sobie zając pod miedzą}} * {{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|Wesoło żeglujmy, wesoło}} '''Piosenki o górach:''' * {{sr|Czerwony pas}} * {{sr|Jak dobrze nam}} }} |- |{{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) }} |{{Pudełko komórkowe 3|tytuł= Pieśni (o) pracy |grafika= |tekst=* {{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|Wio, koniku}} (piosnka furmana) * {{sr|Wszystkich dziś ciekawość budzi}} (piosnka furmana) }} |- |{{Pudełko komórkowe 2 |tytuł= O muzyce |grafika= |tekst=* {{sr|Lutni moja ulubiona}} * {{sr|Marzenie o grajku }} * {{sr|Wezmę ja skrzypki}} }} |{{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ł}} }} |- |{{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}} }} |{{Pudełko komórkowe 3|tytuł= Śpiewy w języku łacińskim |grafika= |tekst=* {{sr|Gaude mater}} * {{sr|Gaudeamus igitur}} * {{sr|Veni Creator}} }} |- |{{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}} }} |{{Pudełko komórkowe 4|tytuł= Pieśni i piosenki po ukraińsku |grafika= |tekst=* {{sr|Дзюба}} * {{sr|Їхав козак за Дунай}} * {{sr|Ще не вмерла України і слава, і воля}} }} |- |} eu054jmxwmjjjr65elh40mr47bq66em Moduł:Linki 828 56416 539971 538711 2026-04-17T18:58:12Z Persino 2851 539971 Scribunto text/plain local p={}; p["PrzetłumaczZnakZastępczyNaStronę"]=function(nazwa_przestrzeni_nazw,nazwa_strony,kod_jezyka,kod_projektu,hash) local czy_pusta_nazwa_przestrzeni_nazw=mw.ustring.match(nazwa_przestrzeni_nazw,"^([%s_:]*)$"); local czy_pusta_nazwa_strony=mw.ustring.match(nazwa_strony,"^([%s_:]*)#.*$") or mw.ustring.match(nazwa_strony,"^([%s_:]*)$"); if(not czy_pusta_nazwa_przestrzeni_nazw and czy_pusta_nazwa_strony)then local tabglownestronyprojektu=mw.loadData("Module:Nazwy/przestrzenie").tabnp; local parametry_modul=require("Module:Parametry"); nazwa_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_przestrzeni_nazw); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(not czy_biezaca)then local nazwy_modul=require("Module:Nazwy"); local wiki_modul=require("Module:Wiki"); local nazwa_kanoniczna_nazwy_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["przedmiotowa"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} local nazwa_bazowa_strony=tabglownestronyprojektu[nazwa_kanoniczna_nazwy_przestrzeni_nazw]; if(nazwa_bazowa_strony)then local nazwa_strony_na_innym_projekcie=wiki_modul.WikidaneOdpowiednikStrony{ ["nazwa strony"]=nazwa_bazowa_strony, ["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu, ["kod języka bazy"]="pl", ["kod projektu bazy"]=(nazwa_kanoniczna_nazwy_przestrzeni_nazw~="Project")and "w" or "b", } if(nazwa_strony_na_innym_projekcie)then local nazwa_strony=nazwy_modul["NAZWASTRONY"]({["nazwa"]=nazwa_strony_na_innym_projekcie,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu}); return ((nazwa_przestrzeni_nazw~="")and (nazwa_przestrzeni_nazw..":") or "")..nazwa_strony,false; else return nazwa_bazowa_strony,false; end; end; else local nazwy_modul=require("Module:Nazwy"); if(hash)then local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={}; local prze_bierzacej_strony=nazwy_modul["NAZWAPRZESTRZENI"](nil,tabela_nazw); local nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,}; if(nazwa_przestrzeni_nazw==prze_bierzacej_strony)then return nazwy_modul["PEŁNANAZWASTRONY"](nil,tabela_nazw),true; end; end; local nazwy_modul=require("Module:Nazwy"); local nazwa_kanoniczna_nazwy_przestrzeni_nazw=nazwy_modul.Np{["nazwa"]=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["przedmiotowa"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak"} local nazwa_strony_glownych_stron_projektu=tabglownestronyprojektu[nazwa_kanoniczna_nazwy_przestrzeni_nazw]; if(nazwa_strony_glownych_stron_projektu)then local nazwa_strony=nazwy_modul["NAZWASTRONY"]({["nazwa"]=nazwa_strony_glownych_stron_projektu}); return ((nazwa_przestrzeni_nazw~="")and (nazwa_przestrzeni_nazw..":") or "")..nazwa_strony,false; end; end; elseif czy_pusta_nazwa_przestrzeni_nazw and czy_pusta_nazwa_strony then local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} if((czy_biezaca)and(hash))then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"](),true; end; local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local tablokalnesiostrzane=wiki_interwiki_modul.tablica_lokalne_siostrzane; if(tablokalnesiostrzane[kod_projektu])then local wiki_modul=require("Module:Wiki"); local pudelko_modul=require("Module:Pudełko"); local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"](); if(not czy_biezaca)then local nazwa_strony_glownej_na_innym_projekcie=wiki_modul.WikidaneOdpowiednikStrony{ ["nazwa strony"]=strona_glowna_tego_projektu, ["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu, } if(nazwa_strony_glownej_na_innym_projekcie)then return nazwa_strony_glownej_na_innym_projekcie,false; end; else return strona_glowna_tego_projektu,false; end; end; end; return ((nazwa_przestrzeni_nazw~="")and (nazwa_przestrzeni_nazw..":") or "")..nazwa_strony,false; end; p["PoprawLinki"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_pierwszy=PobierzParametr(1); local z_kodowaniem=PobierzParametr("uri") or PobierzParametr(2); z_kodowaniem=parametry_modul.CzyTak(z_kodowaniem); local function pojedynczy_link(link) local strona=mw.ustring.match(link,"^%[%[:?([^%[%]|]*)"); local nazwa=mw.ustring.match(link,"^%[%[[^|]*|([^%[%]]*)%]%]$") or strona; local z_kodowaniem_temp=(mw.ustring.match(strona,"%%%x%x")and true or false) or z_kodowaniem; link=p.TworzenieWikiLinku(nil,nil,nil,strona,nil,nazwa,nil,nil,false,nil,nil,nil,nil,nil,nil,nil,z_kodowaniem_temp); return link; end; return mw.ustring.gsub(argument_pierwszy,"(%[%[[^%[%]]*%]%])",function(s)return pojedynczy_link(s);end); end; p["WydobądźLinki"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local wartosc,_=PobierzParametr(1); local z_kodowaniem=PobierzParametr("uri") or PobierzParametr(2); local specjalne_modul=require("Module:Specjalne"); wartosc=specjalne_modul["UsuńKomentarze"](wartosc); wartosc=specjalne_modul["UsuńSzablonyStylów"](wartosc); wartosc=specjalne_modul["UsuńZnaczniki"](wartosc); wartosc=specjalne_modul["UsuńKategorie"](wartosc); wartosc=specjalne_modul["UsuńWywołaniaPlików"](wartosc); wartosc=specjalne_modul["UsuńInterwiki"](wartosc); local linki_modul=require("Module:Linki"); wartosc=linki_modul["PoprawLinki"]{wartosc,z_kodowaniem}; return wartosc; end; function p.TworzenieWikiLinku(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow,z_kodowaniem) if(not czy_url)then local parametry_modul=require("Module:Parametry"); local czy_klucz_projektu_do_projektu_linku=parametry_modul.CzyTak(klucz_projektu_do_projektu_linku); local czy_kod_jezyka_do_projektu_linku=parametry_modul.CzyTak(kod_jezyka_do_projektu_linku); local czy_kod_projektu_do_projektu_linku=parametry_modul.CzyTak(kod_projektu_do_projektu_linku); local czy_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku); local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa); local czy_po=parametry_modul.CzyTak(po); if(not czy_naglowek_strony)then if(czy_nazwa_strony_linku)then local html_modul=require("Module:Html"); local tabela_nazw_adresu={}; local strona_zmienna_tymczasowa=html_modul["NazwaStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu) local naglowek_zmienna_tymczasowa=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); if(strona_zmienna_tymczasowa and naglowek_zmienna_tymczasowa)then nazwa_strony_linku=strona_zmienna_tymczasowa; naglowek_zmienna_tymczasowa=parametry_modul["Odstępy"]{[1]=naglowek_zmienna_tymczasowa,[2]="tak",[3]="tak",}; if(parametry_modul.CzyTak(naglowek_zmienna_tymczasowa))then naglowek_strony=naglowek_zmienna_tymczasowa; czy_naglowek_strony=true; end; end; end; else naglowek_strony=parametry_modul["Odstępy"]{[1]=naglowek_strony,[2]="tak",[3]="tak",}; if(not parametry_modul.CzyTak(naglowek_strony))then czy_naglowek_strony=false; naglowek_strony=nil; end; end; --- local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local interwikimap=wiki_interwiki_modul.interwikimap; local interwikisiostrzaneangielskie=wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie; local wiki_modul=require("Module:Wiki"); local kod_jezyka_uzyskany_poczatkowy,kod_projektu_uzyskany_poczatkowy=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku); local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); if(not kod_jezyka_uzyskany_poczatkowy or not kod_projektu_uzyskany_poczatkowy)then kod_jezyka_uzyskany_poczatkowy=kod_jezyka_uzyskany_poczatkowy or kod_jezyka_tego_projektu; kod_projektu_uzyskany_poczatkowy=kod_projektu_uzyskany_poczatkowy or kod_projektu_tego_projektu; end; local czy_pelna_nazwa_strony_prawidlowa=parametry_modul["CzyTakCiąg"](nazwa_strony_linku) and not mw.ustring.match(nazwa_strony_linku,"^[%s_:]+$") or nil; local tablica_kodow={}; local kod_jezyka_koncowy;local kod_projektu_koncowy; --------------------------------------------------------------------- kod_jezyka_koncowy=kod_jezyka_uzyskany_poczatkowy; kod_projektu_koncowy=kod_projektu_uzyskany_poczatkowy; --------------------------------------------------------------------- local kod_jezyka_poczatkowy,kod_projektu_poczatkowy; if(czy_pelna_nazwa_strony_prawidlowa)then nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy,kod_jezyka_poczatkowy,kod_projektu_poczatkowy=wiki_modul.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy,bez_przetwarzania_kodow and tablica_kodow or nil); czy_pelna_nazwa_strony_prawidlowa=parametry_modul["CzyTakCiąg"](nazwa_strony_linku) and not mw.ustring.match(nazwa_strony_linku,"^[%s_:]+$") or nil; end; ---- if(not nazwa)then nazwa=nazwa_strony_linku..(czy_naglowek_strony and ("#"..naglowek_strony) or ""); nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," "); czy_nazwa=parametry_modul.CzyTak(nazwa); end local ciag_tablica_kodow=""; if(bez_przetwarzania_kodow)then if(kod_jezyka_poczatkowy)then if((kod_jezyka_uzyskany_poczatkowy==kod_jezyka_tego_projektu)and(kod_projektu_uzyskany_poczatkowy==kod_projektu_tego_projektu))then kod_jezyka_uzyskany_poczatkowy=kod_jezyka_poczatkowy; else ciag_tablica_kodow=kod_jezyka_poczatkowy; end; elseif(kod_projektu_poczatkowy)then if((kod_jezyka_uzyskany_poczatkowy==kod_jezyka_tego_projektu)and(kod_projektu_uzyskany_poczatkowy==kod_projektu_tego_projektu))then kod_projektu_uzyskany_poczatkowy=kod_projektu_poczatkowy; else ciag_tablica_kodow=kod_projektu_poczatkowy; end; end; local ciag_tablica_kodow_zmienna_tymczasowa=table.concat(tablica_kodow,":"); ciag_tablica_kodow=ciag_tablica_kodow..(((ciag_tablica_kodow~="")and(ciag_tablica_kodow_zmienna_tymczasowa~=""))and ":" or "")..ciag_tablica_kodow_zmienna_tymczasowa; else kod_jezyka_uzyskany_poczatkowy=kod_jezyka_koncowy; kod_projektu_uzyskany_poczatkowy=kod_projektu_koncowy; end; local nazwy_modul=require("Module:Nazwy"); local czy_dyskusja=parametry_modul.CzyTak(dyskusja); local pierwsza_litera=((czy_pelna_nazwa_strony_prawidlowa)and(not czy_dyskusja)) and mw.ustring.match(nazwa_strony_linku,"^(%a)") or nil; local tabela_nazw={}; local nazwaprzestrzeni=czy_pelna_nazwa_strony_prawidlowa and ((not czy_dyskusja)and nazwy_modul["NAZWAPRZESTRZENI"]({[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy},tabela_nazw) or nazwy_modul["PRZESTRZEŃDYSKUSJI"]({[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw)) or ""; local nazwastrony=czy_pelna_nazwa_strony_prawidlowa and nazwy_modul["NAZWASTRONY"]({[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw) or ""; local linki_modul=require("Module:Linki"); local strona_inna_zmienna_tymczasowa,czy_strona_lokalna=linki_modul["PrzetłumaczZnakZastępczyNaStronę"](nazwaprzestrzeni,nazwastrony,kod_jezyka_koncowy,kod_projektu_koncowy,czy_naglowek_strony); local czy_pelna_nazwa_strony_prawidlowa=((czy_pelna_nazwa_strony_prawidlowa)and(parametry_modul["CzyTakCiąg"](strona_inna_zmienna_tymczasowa) and not mw.ustring.match(strona_inna_zmienna_tymczasowa,"^[%s_:]+$")) or strona_inna_zmienna_tymczasowa); local function TabelaNazw()tabela_nazw_temp={};tabela_nazw_temp.czy_aktualna_wiki=tabela_nazw.czy_aktualna_wiki;return tabela_nazw_temp;end; if(nazwastrony=="")then local tabela_nazw=TabelaNazw(); local nazwa_strony=nazwy_modul["NAZWASTRONY"]({[1]=strona_inna_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw) local techniczne_modul=require("Module:Techniczne"); local nowa_nazwa_strony=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](nazwa_strony); if(nazwa)then local f,ile=mw.ustring.gsub(nazwa,"%%s",function()return nil;end); if(ile==1)then nazwa=mw.ustring.format(nazwa,nowa_nazwa_strony) or nil; elseif(ile==2)then local nowa_nazwa_przestrzeni=nazwy_modul[(czy_dyskusja) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"]({[1]=strona_inna_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw); if(tabela_nazw.czy_aktualna_wiki)then nowa_nazwa_przestrzeni=nazwy_modul.Np{nazwa=nowa_nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nowa_nazwa_przestrzeni=nazwy_modul.NpDane{nazwa=nowa_nazwa_przestrzeni,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} or nowa_nazwa_przestrzeni; end; nazwa=mw.ustring.format(nazwa,nowa_nazwa_przestrzeni,nowa_nazwa_strony) or nil; end; end; end; strona_inna_zmienna_tymczasowa=strona_inna_zmienna_tymczasowa or nazwa_strony_linku; local function NazwaStronyDyskusji(strona) if(czy_dyskusja and czy_pelna_nazwa_strony_prawidlowa)then return nazwy_modul["NAZWASTRONYDYSKUSJI"]({[1]=strona,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},TabelaNazw()); end; return strona; end; local strona_zmienna_tymczasowa=NazwaStronyDyskusji(strona_inna_zmienna_tymczasowa); nazwa_strony_linku=((not czy_strona_lokalna or ((czy_dyskusja)and(nazwy_modul["NAZWAPRZESTRZENI"]({[1]=strona_inna_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},TabelaNazw())~=nazwy_modul["NAZWAPRZESTRZENI"]({[1]=strona_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},TabelaNazw()))))and strona_zmienna_tymczasowa or ""); nazwa_strony_linku=pierwsza_litera and mw.ustring.gsub(nazwa_strony_linku,"^["..mw.getContentLanguage():ucfirst(pierwsza_litera)..mw.getContentLanguage():lcfirst(pierwsza_litera).."]",pierwsza_litera) or nazwa_strony_linku; czy_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku); local function BiezacaWikiDwukropek() local czy_biezace_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; local czy_wstawiac_dwukropek; if(czy_biezace_wiki)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwaprzestrzeni==nazwy_np_modul.Category)or(nazwaprzestrzeni==nazwy_np_modul.File))then czy_wstawiac_dwukropek=true; end; end; return czy_wstawiac_dwukropek; end; local pudelko_modul=require("Module:Pudełko"); local jezykowe_projekty=wiki_interwiki_modul.tablica_lokalne_lingwistyczne_siostrzane; local projekty_nie_en=jezykowe_projekty[kod_projektu_uzyskany_poczatkowy]; local czy_kod_jezyka_uzyskany_poczatkowy=(kod_jezyka_uzyskany_poczatkowy~=kod_jezyka_tego_projektu); local czy_kod_projektu_uzyskany_poczatkowy=(kod_projektu_uzyskany_poczatkowy~=kod_projektu_tego_projektu); local html_modul=require("Module:Html"); local function AdresLinku() local kody_poczatkowe=(not projekty_nie_en and (czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or "") or(czy_kod_jezyka_uzyskany_poczatkowy and kod_jezyka_uzyskany_poczatkowy..":"..(czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or "") or (czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or ""))); local tablica_kodow=kody_poczatkowe..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or ""); local czy_wstawiac_dwukropek=((tablica_kodow~="")and (projekty_nie_en and (czy_kod_jezyka_uzyskany_poczatkowy and ":" or "") or "") or (BiezacaWikiDwukropek() and ":" or "")); local strona;local parametry;local naglowek; if(czy_nazwa_strony_linku)then strona=html_modul.EncodeElementyAdresuStrony(nazwa_strony_linku,nil,z_kodowaniem); end; if(czy_parametry_strony)then parametry=html_modul.EncodeElementyAdresuStrony(parametry_strony,true,z_kodowaniem); parametry="?"..parametry; end; if(czy_naglowek_strony)then naglowek=html_modul.EncodeElementyAdresuStrony(naglowek_strony,nil,z_kodowaniem); naglowek="#"..naglowek; end; local zmienna_linkowa=tablica_kodow..(strona or "") ..(parametry or "")..(naglowek or ""); return zmienna_linkowa, czy_wstawiac_dwukropek; end; nazwa=nazwa and mw.ustring.gsub(nazwa,"^[%s_]*","") or nil; nazwa=nazwa and mw.ustring.gsub(nazwa,"[%s_]*$","") or nil; --nazwa=nazwa and mw.ustring.gsub(nazwa,"[%s_]+"," ") or nil; if(czy_ogolne and not czy_nazwa)then if(parametry_modul.CzyTak(wyswietl))then nazwa=strona_zmienna_tymczasowa; czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa); else if((czy_pelna_nazwa_strony_prawidlowa)and(nazwastrony~=""))then nazwa=nazwastrony; else nazwa=nazwy_modul["NAZWASTRONY"]{[1]=strona_zmienna_tymczasowa,["kod języka"]=kod_jezyka_uzyskany_poczatkowy,["kod projektu"]=kod_projektu_uzyskany_poczatkowy,}; end; czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa); end end; local zmienna_linkowa; local aktywny; if(not czy_wewnetrzny_z_fullurl)then local czy_wstawiac_dwukropek; zmienna_linkowa,czy_wstawiac_dwukropek=AdresLinku(); zmienna_linkowa=mw.ustring.gsub(zmienna_linkowa,"[%s_]+"," "); local czy_za=parametry_modul.CzyTak(za); if(czy_za or(nazwa and (nazwa~=zmienna_linkowa)))then zmienna_linkowa="[["..czy_wstawiac_dwukropek..zmienna_linkowa..(czy_nazwa and "|"..nazwa..(czy_za and za or "") or (czy_za and ("|"..zmienna_linkowa..za) or "")).."]]"..(czy_po and po or ""); else zmienna_linkowa="[["..czy_wstawiac_dwukropek..zmienna_linkowa.."]]"..(czy_po and po or ""); end aktywny=false; else aktywny=true; local serwer; local projekt; if(projekty_nie_en)then for kod_specjalny_projektu,kod_projektu_interwiki in pairs(wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie)do if(kod_projektu_uzyskany_poczatkowy==kod_projektu_interwiki)then projekt=kod_specjalny_projektu; end; end; end; local function Protocol(kod_projektu) local interwikimap=wiki_interwiki_modul.interwikimap; local url=interwikimap[kod_projektu]; if(not url)then return "";end; return mw.ustring.match(url,"^([^/]*)//"); end; local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local nazwy_np_modul=require("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); local czy_specjalna=(nazwaprzestrzeni==nazwy_np_modul.Special); local ciag_tablica_kodow_zmienna_tymczasowa=mw.ustring.gsub(strona_zmienna_tymczasowa,"[%s_]+","_"); if(((projekt)and(czy_parametry_strony)and(czy_specjalna))or((projekt)and(wersja_linku=="w")))then local adres=Protocol(kod_projektu_uzyskany_poczatkowy).."//"..kod_jezyka_uzyskany_poczatkowy.."."..projekt..".org/w/index.php?title="..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and "&"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za)and (" "..adres..za) or "")).."]"..(czy_po and po or ""); elseif(((not projekty_nie_en)and(czy_parametry_strony)and(czy_specjalna))or((not projekty_nie_en)and(wersja_linku=="w")))then local techniczne_modul=require("Module:Techniczne"); local wiki_nie_jezykowe=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane[kod_projektu_uzyskany_poczatkowy]; local serwer=mw.ustring.match(wiki_nie_jezykowe,"^([^/]*//[^/]*)") local adres=serwer.."/w/index.php?title="..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and "&"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za)and (" "..adres..za) or "")).."]"..(czy_po and po or ""); elseif(((projekt)and(czy_parametry_strony))or((projekt)and(wersja_linku=="wiki")))then local strona_zmienna_tymczasowa,_=mw.ustring.gsub(strona_zmienna_tymczasowa,"[_%s]+","_"); local adres=Protocol(kod_projektu_uzyskany_poczatkowy).."//"..kod_jezyka_uzyskany_poczatkowy.."."..projekt..".org/wiki/"..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and " "..nazwa..(parametry_modul.CzyTak(za) and za or "") or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); elseif(((not projekty_nie_en)and(czy_parametry_strony))or((not projekty_nie_en)and(wersja_linku=="wiki")))then local wiki_nie_jezykowe=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane[kod_projektu_uzyskany_poczatkowy]; local strona_zmienna_tymczasowa,_=mw.ustring.gsub(ciag_tablica_kodow_zmienna_tymczasowa,"[_%s]+","_"); strona_zmienna_tymczasowa=((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..strona_zmienna_tymczasowa; strona_zmienna_tymczasowa=html_modul.EncodeHtml(strona_zmienna_tymczasowa); strona_zmienna_tymczasowa,_=mw.ustring.gsub(strona_zmienna_tymczasowa,"([%%])(%d+)","%%%%%2"); strona_zmienna_tymczasowa,_=mw.ustring.gsub(wiki_nie_jezykowe,"$1",strona_zmienna_tymczasowa); local adres=strona_zmienna_tymczasowa..(czy_parametry_strony and "?"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); else local pudelko_modul=require("Module:Pudełko"); zmienna_linkowa=(parametry_modul.CzyTak(klucz_projektu)and ((not(klucz_projektu==pudelko_modul["Klucz projektu tego projektu"]()))and (klucz_projektu..":")or "" ) or ((parametry_modul.CzyTak(kod_jezyka_uzyskany_poczatkowy)and ((not(kod_jezyka_uzyskany_poczatkowy==pudelko_modul["Kod języka tego projektu"]()))and(kod_jezyka_uzyskany_poczatkowy..":")or "") or "")..(parametry_modul.CzyTak(kod_projektu_uzyskany_poczatkowy)and ((not(kod_projektu_uzyskany_poczatkowy==pudelko_modul["Kod projektu tego projektu"]()))and(kod_projektu_uzyskany_poczatkowy..":")or "") or ""))) ..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..strona_zmienna_tymczasowa; local strona=(czy_parametry_strony and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); local adres=tostring(mw.uri.fullUrl(zmienna_linkowa))..strona; zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); end; end; return zmienna_linkowa,kod_jezyka_koncowy,kod_projektu_koncowy,strona_zmienna_tymczasowa,czy_naglowek_strony,aktywny; else local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local czy_nazwa; if(not nazwa)then nazwa=mw.ustring.match(nazwa_strony_linku,"//[^/]*/(.*)$"); nazwa=html_modul.DecodeHtml(nazwa); czy_nazwa=parametry_modul.CzyTak(nazwa); else czy_nazwa=parametry_modul.CzyTak(nazwa); end; local czy_po=parametry_modul.CzyTak(po); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); nazwa_strony_linku=mw.ustring.gsub(nazwa_strony_linku,"[%s_]+","_"); nazwa_strony_linku=mw.ustring.gsub(nazwa_strony_linku,"//([^/]*)/(.*)$", function(s1,s2)return "//"..s1.."/"..html_modul.EncodeHtml(s2);end) local adres=nazwa_strony_linku..(czy_parametry_strony and "?"..html_modul.EncodeParametryHtml(parametry_strony) or "") ..(czy_naglowek_strony and "#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony)) or ""); local zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); return zmienna_linkowa,nil,nil,nazwa_strony_linku,czy_naglowek_strony,false; end; end; function p.TworzLinkBezPrzetwarzania(klucz_projektu,kod_jezyka,kod_projektu,strona,naglowek,nazwa,za,po,z_kodowaniem) local parametry_modul=require("Module:Parametry"); local adres=(parametry_modul.CzyTak(klucz_projektu)and (klucz_projektu..":") or ((parametry_modul.CzyTak(kod_jezyka)and (kod_jezyka..":") or "")..(parametry_modul.CzyTak(kod_projektu)and (kod_projektu..":") or ""))) ..strona..(parametry_modul.CzyTak(naglowek) and ("#"..naglowek) or ""); local html_modul=require("Module:Html"); adres=html_modul.AdresProjektuEncodeHtml(adres,z_kodowaniem); local wartosc="[[:"..adres..(parametry_modul.CzyTak(nazwa) and ("|"..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and ("|"..adres..za) or "")).."]]"..(po and po or ""); return wartosc; end; function p.LinkWikidane(link,klucz_projektu,kod_jezyka,kod_projektu,strona,czy_naglowek,czy_url,czy_parametry,aktywny) local wiki_modul=require("Module:Wiki"); local klasa=wiki_modul.KodyKlasStronyNaDanejWiki{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona,["nagłówek"]=czy_naglowek,["url"]=czy_url,["parametry"]=czy_parametry,["aktywny"]=aktywny,}; local nazwy_modul=require("Module:Nazwy"); local spanramka=mw.html.create('span'); spanramka:addClass(klasa); spanramka:addClass("link"); spanramka:wikitext(link); return tostring(spanramka:allDone()); end; function p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem) local parametry_modul=require("Module:Parametry"); parametry_strony=czy_wewnetrzny_z_fullurl and parametry_strony or nil; local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local html_modul=require("Module:Html"); nazwa_strony_linku=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_strony_linku); local wartosc_parent,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,czy_naglowek_strony,aktywny=p.TworzenieWikiLinku(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow,z_kodowaniem); if(parametry_modul.CzyTak(bez_znacznikow))then return wartosc_parent;end; return p.LinkWikidane(wartosc_parent,nil,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,czy_naglowek_strony,czy_url,czy_parametry_strony,aktywny); end; function p.RozwinKreskaPoziomowa(miano_przestrzeni_nazw,nazwa_strony_linku,naglowek,czy_link_url,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,tabela_nazw,__FUNKCJA) local nowa_nazwa_strony_linku; local czy_kreska_dolna;local hash;local prze_nie_main; local czy_strona_lokalna; if(not czy_analiza)then czy_kreska_dolna=mw.ustring.match(nazwa_strony_linku,"^[%s_:]*$") or mw.ustring.match(nazwa_strony_linku,":[%s_]*$"); hash=(not czy_kreska_dolna)and ((not czy_link_url) and mw.ustring.match(nazwa_strony_linku,"^[_%s]*#(.*)$") or nil) or (((czy_kreska_dolna)and(czy_link_url) and require("Module:Parametry").CzyTak(naglowek)) and naglowek or nil); if((czy_kreska_dolna)or(hash))then local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku); local miano_przestrzeni_nazw_maly=((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~=""))and mw.ustring.lower(miano_przestrzeni_nazw) or miano_przestrzeni_nazw; if((not miano_przestrzeni_nazw_maly)or((miano_przestrzeni_nazw_maly=="")or(miano_przestrzeni_nazw_maly=="(main)")or(miano_przestrzeni_nazw_maly=="(główna)")))then miano_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"]({nazwa=nazwa_strony_linku,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw); end; local nazwa_strony=nazwy_modul["NAZWASTRONY"]({nazwa=nazwa_strony_linku,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw); if(nazwa_strony=="")then nowa_nazwa_strony_linku,czy_strona_lokalna=p["PrzetłumaczZnakZastępczyNaStronę"](miano_przestrzeni_nazw or "","",kod_jezyka,kod_projektu,hash); else nowa_nazwa_strony_linku=nazwa_strony_linku; end; else prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil; nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku; end; else prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil; nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku; end; nowa_nazwa_strony_linku=__FUNKCJA(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main); return nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna; end; p["GanerujSkładoweURL"] = function(args) local klucz_projektu_do_projektu_linku; local kod_jezyka_do_projektu_linku; local kod_projektu_do_projektu_linku; local miano_przestrzeni_nazw; local nazwa_strony_linku=args["strona"] or args["s"] or "_"; local html_modul=require("Module:Html"); nazwa_strony_linku=nazwa_strony_linku and html_modul.DecodeHtml(nazwa_strony_linku) or nil; local parametry_modul=require("Module:Parametry"); local w=args["wersja linku"] or args["w"]; local tab_w={ ["w"]=true, ["wiki"]=true, }; local wersja_linku=parametry_modul.CzyTak(w) and (tab_w[w] and w or nil) or ""; local _; local strony_modul=require("Module:Strony"); local czy_url=strony_modul.SprawdzanieURL(nazwa_strony_linku); local parametry_strony;local naglowek_strony;local nazwa;local po;local po;local za; nazwa=args["nazwa"] or args["n"]; po=args["po"] or args["p"]; za=args["za"] or args["z"]; local function DaneStrony(nazwa_strony_linku_parametr,adres) if(parametry_modul.CzyTak(nazwa_strony_linku_parametr))then if(mw.ustring.match(nazwa_strony_linku_parametr,"^/wiki/"))then nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/wiki/",""); local tabela_nazw_adresu={}; naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); elseif(mw.ustring.match(nazwa_strony_linku_parametr,"^/w/"))then nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/w/",""); local tabela_nazw_adresu={}; local html_modul=require("Module:Html"); naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); local nazwa_strony_jednostki,parametry_strony_jednostki=html_modul["NazwaStronyZParametrówStronyAdresu"](parametry_strony,true); parametry_strony=parametry_strony_jednostki or parametry_strony; nazwa_strony_linku_parametr=nazwa_strony_jednostki or nazwa_strony_linku_parametr; else nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/(.*)$","%1"); local tabela_nazw_adresu={}; local html_modul=require("Module:Html"); naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); end; else if((parametry_modul.CzyTak(kod_jezyka_do_projektu_linku))or(parametry_modul.CzyTak(kod_projektu_do_projektu_linku)))then if((not adres)or(mw.ustring.match(adres,"/$1$")))then local pudelko_modul=require("Module:Pudełko"); nazwa_strony_linku_parametr=pudelko_modul["Nazwa strony głównej projektu 2"]{[1]=kod_jezyka_do_projektu_linku,[2]=kod_projektu_do_projektu_linku,} or ""; end; end; end; parametry_strony=parametry_modul.CzyTak(parametry_strony) and parametry_strony or (args["parametry"] or args["c"]); naglowek_strony=parametry_modul.CzyTak(naglowek_strony) and naglowek_strony or (args["nagłówek"] or args["g"]); --nazwa=args["nazwa"] or args["n"]; local klucz_projektu_do_projektu_linku_temp=args["klucz projektu"] or args["k"]; klucz_projektu_do_projektu_linku=parametry_modul.CzyTak(klucz_projektu_do_projektu_linku_temp) and (klucz_projektu_do_projektu_linku_temp) or klucz_projektu_do_projektu_linku; local kod_jezyka_do_projektu_linku_temp=args["kod języka"] or args["kj"]; kod_jezyka_do_projektu_linku=parametry_modul.CzyTak(kod_jezyka_do_projektu_linku_temp) and (kod_jezyka_do_projektu_linku_temp) or kod_jezyka_do_projektu_linku; local kod_projektu_do_projektu_linku_temp=args["kod projektu"] or args["kp"]; kod_projektu_do_projektu_linku=parametry_modul.CzyTak(kod_projektu_do_projektu_linku_temp) and (kod_projektu_do_projektu_linku_temp) or kod_projektu_do_projektu_linku; nazwa_strony_linku=nazwa_strony_linku_parametr; czy_url=false; end; if(not czy_url)then local miano_przestrzeni_nazw=args["miano przestrzeni nazw"] or args["przestrzeń"] or args["f"]; nazwa_strony_linku=parametry_modul["CzyTakCiąg"](miano_przestrzeni_nazw) and miano_przestrzeni_nazw..":"..nazwa_strony_linku or nazwa_strony_linku; DaneStrony(nazwa_strony_linku); else local html_modul=require("Module:Html"); local nazwa_strony_bez_protokolu=html_modul["UrlBezProtokołu"](nazwa_strony_linku); local serwer,nazwa_strony=html_modul["URLStrona"](nazwa_strony_bez_protokolu); local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local function SerwerWiki(serwer) local kod_jezyka_zmienna_tymczasowa,kod_specjalny_projektu=mw.ustring.match(serwer,"^(%w+)%.(%w+)%.org"); if((not kod_jezyka_zmienna_tymczasowa)or(not kod_specjalny_projektu))then kod_jezyka_zmienna_tymczasowa,kod_specjalny_projektu=mw.ustring.match(serwer,"^(%w+)%.[mM]%.(%w+)%.org"); end; local interwikisiostrzaneangielskie=wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie; local kod_projektu=interwikisiostrzaneangielskie[kod_specjalny_projektu]; local kod_jezyka=kod_jezyka_zmienna_tymczasowa and (mw.language.isKnownLanguageTag(kod_jezyka_zmienna_tymczasowa) and kod_jezyka_zmienna_tymczasowa or nil) or nil; return kod_jezyka,kod_projektu; end; local function JezykoweLubAngielskieProjekty(serwer_portalu) local kod_jezyka,kod_projektu=SerwerWiki(serwer_portalu); if(kod_jezyka and kod_projektu)then kod_jezyka_do_projektu_linku=kod_jezyka; kod_projektu_do_projektu_linku=kod_projektu; klucz_projektu_do_projektu_linku=nil; DaneStrony(nazwa_strony); return true; else local pozajezykoweprojektysiostrzane=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane; local techniczne_modul=require("Module:Techniczne"); for kod, url in pairs(pozajezykoweprojektysiostrzane)do local adres=html_modul["UrlBezProtokołu"](url); local serwer_portalu,nazwa_strony_portalu=html_modul["URLStrona"](adres); if(serwer_portalu)then if((serwer_portalu==serwer)and((mw.ustring.match(nazwa_strony_portalu,"%$1"))or(nazwa_strony==nazwa_strony_portalu)))then kod_jezyka_do_projektu_linku=kod_jezyka or "en"; kod_projektu_do_projektu_linku=--[[kod_projektu or]] kod; local nazwa_strony_spreparowana=nil; if(not mw.ustring.match(adres,"/wiki/%$1$"))then if(mw.ustring.match(url,"[:/]$1$"))then local url_wzor=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](adres); url_wzor=mw.ustring.gsub(url_wzor,"(%%$1)$","(.-)"); nazwa_strony_spreparowana=mw.ustring.match(nazwa_strony_bez_protokolu,"^"..url_wzor.."$"); if(not nazwa_strony_spreparowana)then return false; end; end; end; DaneStrony(nazwa_strony_spreparowana or nazwa_strony,adres); return true; end; end; end; end; end; local function __FUNKCJA() if(mw.ustring.match(serwer,"^upload%.wikimedia%.org$"))then DaneStrony(nazwa_strony); nazwa_strony=nazwa_strony_linku; nazwa_strony_linku="Media:"..mw.ustring.match(nazwa_strony,"([^/]*)$"); local kod_projektu_do_projektu_linku2,kod_jezyka_do_projektu_linku2=mw.ustring.match(nazwa_strony,"^([^/]*)/([^/]*)/.*$"); kod_jezyka_do_projektu_linku=kod_jezyka_do_projektu_linku or kod_jezyka_do_projektu_linku2; kod_projektu_do_projektu_linku=kod_projektu_do_projektu_linku or kod_projektu_do_projektu_linku2; czy_url=false; else local juz_tak=JezykoweLubAngielskieProjekty(serwer); if(not juz_tak)then local html_modul=require("Module:Html"); local tabela_nazw_adresu={}; naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); naglowek_strony=parametry_modul.CzyTak(naglowek_strony) and naglowek_strony or (args["nagłówek"] or args["g"]); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); parametry_strony=parametry_modul.CzyTak(parametry_strony) and parametry_strony or (args["parametry"] or args["c"]); nazwa_strony_linku=html_modul["NazwaStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); end; end; end; __FUNKCJA(); end; local czy_wewnetrzny_z_fullurl; if(not parametry_modul.CzyTak(parametry_strony))then if(wersja_linku=="")then if((klucz_projektu_do_projektu_linku)or(kod_jezyka_do_projektu_linku)or(kod_projektu_do_projektu_linku))then czy_wewnetrzny_z_fullurl=false; elseif(not czy_url)then czy_wewnetrzny_z_fullurl=false; else czy_wewnetrzny_z_fullurl=true; end; else czy_wewnetrzny_z_fullurl=true; end; else czy_wewnetrzny_z_fullurl=true; end; return klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url; end; p["Link wewnętrzny"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local klucz_projektu_do_projektu_linku=args["klucz projektu"]; local kod_jezyka_do_projektu_linku=args["kod języka"]; local kod_projektu_do_projektu_linku=args["kod projektu"]; local nazwa_strony_linku=args["strona"] or "_"; local nazwa=args["nazwa"]; local czy_nazwa=parametry_modul.CzyTak(nazwa); nazwa=czy_nazwa and nazwa or nil; local po=args["po"]; local za=args["za"]; local naglowek_strony=args["nagłówek"]; local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]); local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]); local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]); local z_kodowaniem=parametry_modul.CzyTak(args["uri"]); local czy_analiza=parametry_modul.CzyTak(args["analiza"]); local czy_naglowek=parametry_modul.CzyTak(naglowek_strony); local hash;local czy_kreska_dolna;local prze_nie_main;local czy_strona_lokalna;local nowa_nazwa_strony_linku; if(not czy_analiza)then nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa("",nazwa_strony_linku,naglowek_strony,czy_naglowek,nil,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,{},function(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main) return nowa_nazwa_strony_linku; end); nazwa=czy_nazwa and nazwa or (hash and ("#"..hash) or nil); else nowa_nazwa_strony_linku=nazwa_strony_linku; end; local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (((not czy_naglowek)and(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$")))or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*#(.*)$")))) or nil); if(not bez_przetwarzania)then return p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek and naglowek_strony or hash,nazwa,za,po,nil,nil,nil,nil,nil,nil,nil,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem); else local link=p.TworzLinkBezPrzetwarzania(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,(not czy_strona_lokalna) and nowa_nazwa_strony_linku or (hash and "" or nowa_nazwa_strony_linku),czy_naglowek and naglowek_strony or hash,nazwa,za,po,z_kodowaniem); if(not bez_znacznikow)then local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek_strony or hash or mw.ustring.match(nazwa_strony_linku,"#"),nil,nil); else return link; end; end; end; p["LinkURL"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local linki_modul=require("Module:Linki"); local klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url=linki_modul["GanerujSkładoweURL"](args); local czy_analiza=parametry_modul.CzyTak(args["analiza"]) or parametry_modul.CzyTak(args["a"]); local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]); local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]); local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]); local z_kodowaniem=parametry_modul.CzyTak(args["uri"]) or parametry_modul.CzyTak(args["u"]); local czy_naglowek=parametry_modul.CzyTak(naglowek_strony); local hash;local czy_kreska_dolna;local prze_nie_main;local czy_strona_lokalna;local nowa_nazwa_strony_linku; if((not czy_analiza)and(not czy_url))then nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa("",nazwa_strony_linku,naglowek_strony,czy_naglowek,nil,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,{},function(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main) return nowa_nazwa_strony_linku; end); nazwa=parametry_modul.CzyTak(nazwa) and nazwa or (hash and ("#"..hash) or nil); else nowa_nazwa_strony_linku=nazwa_strony_linku; end; local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$"))) or nil); local function Bez_przetwarzania_lub_bez_znaczkow() if(parametry_modul.CzyTak(bez_przetwarzania))then local bez_znacznikow=parametry_modul.CzyTak(bez_znacznikow); local czy_parametry=parametry_modul.CzyTak(parametry_strony); local wartosc=((not czy_url)and((parametry_modul.CzyTak(klucz_projektu_do_projektu_linku)and (klucz_projektu_do_projektu_linku..":") or ((parametry_modul.CzyTak(kod_jezyka_do_projektu_linku)and (kod_jezyka_do_projektu_linku..":") or "")..(parametry_modul.CzyTak(kod_projektu_do_projektu_linku)and (kod_projektu_do_projektu_linku..":") or "")))..nowa_nazwa_strony_linku) or nil); local link; local po_linku=parametry_modul.CzyTak(po) and po or ""; if((not czy_url)and((czy_parametry)or(parametry_modul.CzyTak(wersja_linku))))then local adres=tostring(mw.uri.fullUrl(wartosc,"")); adres=((not parametry_modul.CzyTak(wersja_linku))or(wersja_linku=="wiki")) and adres or mw.ustring.gsub(adres,"/wiki/","/w/index.php?title=",1); local html_modul=require("Module:Html"); local parametry_i_naglowek=((czy_parametry)and ((((wersja_linku=="w")) and "&" or "?")..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or "") adres=adres..parametry_i_naglowek; link= "["..adres..(parametry_modul.CzyTak(nazwa) and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or (" "..nowa_nazwa_strony_linku))).."]"..po_linku; elseif(czy_url)then local html_modul=require("Module:Html"); local parametry_i_naglowek=((czy_parametry)and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or "") local adres=nowa_nazwa_strony_linku..parametry_i_naglowek; link= "["..adres..(parametry_modul.CzyTak(nazwa) and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or (" "..nowa_nazwa_strony_linku))).."]"..po_linku; else local naglowek=(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or ""); local adres=wartosc..naglowek; link="[[:"..adres..((parametry_modul.CzyTak(nazwa)) and ("|"..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and ("|"..adres..za) or "")).."]]"..po_linku; end; if not bez_znacznikow then local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek_strony,czy_url,czy_parametry_strony); else return link; end; end; end; local wynik=Bez_przetwarzania_lub_bez_znaczkow();if(wynik)then return wynik;end; return linki_modul.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,nil,nil,nil,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem); end; function p.UzyskajKodWikiLinku(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local linki_modul=require("Module:Linki"); local klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url=linki_modul["GanerujSkładoweURL"](args); local wiki_modul=require("Module:Wiki"); local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku); local pudelko_modul=require("Module:Pudełko"); kod_jezyka_koncowy=parametry_modul.CzyTak(kod_jezyka_koncowy) and kod_jezyka_koncowy or pudelko_modul["Kod języka tego projektu"](); kod_projektu_koncowy=parametry_modul.CzyTak(kod_projektu_koncowy) and kod_projektu_koncowy or pudelko_modul["Kod projektu tego projektu"](); local aktywny; local czy_nazwa=parametry_modul.CzyTak(nazwa_strony_linku); if(not czy_nazwa or not mw.ustring.match(nazwa_strony_linku,"_+"))then if((not czy_nazwa)and((not kod_jezyka_koncowy)or(kod_jezyka_koncowy==pudelko_modul["Kod języka tego projektu"]()))and((not kod_projektu_koncowy)or(kod_projektu_koncowy==pudelko_modul["Kod projektu tego projektu"]())))then if((parametry_modul.CzyTak(naglowek_strony)) or (not args["strona"] or args["strona"]=="") or ((args["strona"])and(mw.ustring.match(args["strona"],"^[_%s]*#[_%s]*$"))or(nil)))then aktywny=false; local nazwy_modul=require("Module:Nazwy"); nazwa_strony_linku=nazwy_modul["PEŁNANAZWASTRONY"](); end; else aktywny=true; end; else aktywny=true; local pudelko_modul=require("Module:Pudełko"); nazwa_strony_linku=pudelko_modul["Strona główna tego projektu"](); end; local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=wiki_modul.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy); --- local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local czy_pusta_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku); if(not czy_pusta_nazwa_strony_linku)then local linki_modul=require("Module:Linki"); nazwa_strony_linku,_=linki_modul["PrzetłumaczZnakZastępczyNaStronę"]("","",kod_jezyka_koncowy,kod_projektu_koncowy,czy_naglowek_strony); end; ---- local klasa=wiki_modul.KodyKlasStronyNaDanejWiki{["klucz projektu"]=nil,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,["strona"]=nazwa_strony_linku,["nagłówek"]=czy_naglowek_strony,["url"]=czy_url,["parametry"]=czy_parametry_strony,["aktywny"]=aktywny,}; return klasa; end; p["LinkOgólne"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local miano_przestrzeni_nazw=args["miano przestrzeni nazw"] or args["przestrzeń"] or args["m"]; local czy_dyskusja=parametry_modul.CzyTak(args["dyskusja"] or args["d"]); local klucz_projektu_do_projektu_linku=args["klucz projektu"] or args["k"]; local kod_jezyka_do_projektu_linku=args["kod języka"] or args["kj"]; local kod_projektu_do_projektu_linku=args["kod projektu"] or args["kp"]; local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]) or parametry_modul.CzyTak(args["bz"]); local wyswietl_miano_przestrzeni_nazw=args["wyświetl miano przestrzeni nazw"] or args["wyświetl"] or args["w"]; local nazwa_strony_linku=args[1] or "_"; local czy_nazwa=parametry_modul.CzyTak(args[2]); local czy_analiza=parametry_modul.CzyTak(args["analiza"]) or parametry_modul.CzyTak(args["a"]); local z_kodowaniem=parametry_modul.CzyTak(args["uri"]) or parametry_modul.CzyTak(args["u"]); local nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna; local czy_niepusta_nazwa_przestrzeni_nazw; local nazwy_modul=require("Module:Nazwy"); local czy_aktualna_wiki; if(not czy_analiza)then local tabela_nazw={}; miano_przestrzeni_nazw=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or ""; nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa(miano_przestrzeni_nazw,nazwa_strony_linku,nil,nil,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,tabela_nazw,function(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main) if(czy_dyskusja)then local tabela_nazw_temp={};tabela_nazw_temp.czy_aktualna_wiki=tabela_nazw.czy_aktualna_wiki; nowa_nazwa_strony_linku=nazwy_modul["NAZWASTRONYDYSKUSJI"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["bez zmiany adresu"]="tak",},tabela_nazw_temp); end; return nowa_nazwa_strony_linku; end); czy_aktualna_wiki=tabela_nazw.czy_aktualna_wiki; else prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil; nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku; end; local tabela_nazw={};tabela_nazw.czy_aktualna_wiki=czy_aktualna_wiki; local czy_biezaca; local czy_nazwa_strony_pusta; local wiki_modul=require("Module:Wiki"); if((czy_dyskusja)or(czy_analiza))then czy_nazwa_strony_pusta=mw.ustring.match(nazwa_strony_linku,"^[%s_:]*$"); if((not czy_nazwa_strony_pusta)or((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~="")))then if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; local nazwy_modul=require("Module:Nazwy"); if(czy_biezaca)then miano_przestrzeni_nazw=nazwy_modul[((czy_dyskusja)and(czy_analiza)) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"](nowa_nazwa_strony_linku,tabela_nazw); else miano_przestrzeni_nazw=nazwy_modul[((czy_dyskusja)and(czy_analiza)) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,},tabela_nazw); end; czy_niepusta_nazwa_przestrzeni_nazw=parametry_modul.CzyTak(miano_przestrzeni_nazw); end; elseif(hash or czy_kreska_dolna)then czy_niepusta_nazwa_przestrzeni_nazw=true; elseif(not prze_nie_main)then miano_przestrzeni_nazw=""; czy_niepusta_nazwa_przestrzeni_nazw=false; else miano_przestrzeni_nazw=prze_nie_main; czy_niepusta_nazwa_przestrzeni_nazw=true; end; local techniczne_modul=require("Module:Techniczne"); local czy_wyswietl_miano_przestrzeni_nazw=parametry_modul.CzyTak(wyswietl_miano_przestrzeni_nazw); local function NazwaLinkuDoStrony() local function CzyPrzestrzen(miano_przestrzeni_nazw) local czy_biezaca; if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; local miano_przestrzeni_nazw; if(czy_biezaca)then miano_przestrzeni_nazw=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else miano_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} or miano_przestrzeni_nazw; end; return miano_przestrzeni_nazw; end; local function Nazwa2(nazwa,czy_wyswietl_miano_przestrzeni_nazw) if(czy_wyswietl_miano_przestrzeni_nazw)then return nazwa; else nazwa=nazwy_modul["NAZWASTRONY"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,},tabela_nazw); if(tabela_nazw.m)then nazwa=mw.getContentLanguage():lcfirst(nazwa); end; return nazwa; end; end; local function Nazwa(nazwa) local ile;local ile2=0; if((czy_analiza) and (not bez_przetwarzania))then nazwa=techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](nazwa) or nazwa; nazwa,ile=mw.ustring.gsub(nazwa,"^[%s_:]*(.+)[%s_:]*:[%s_]*$",function(nazwaprzestrzeni) local nazwa_przestrzeni=CzyPrzestrzen(nazwaprzestrzeni) if(nazwa_przestrzeni)then return nazwa_przestrzeni..":".."%s"; end; ile2=ile+1; end); else nazwa,ile=mw.ustring.gsub(nazwa,"^[%s_:]*(.+)[%s_:]*:[%s_]*$",function(nazwaprzestrzeni) local nazwa_przestrzeni=CzyPrzestrzen(nazwaprzestrzeni) if(nazwa_przestrzeni)then return nowa_nazwa_strony_linku; end; ile2=ile2+1; end); end; if(ile-ile2==0)then return Nazwa2(nazwa,czy_wyswietl_miano_przestrzeni_nazw); else return nazwa; end; end; local function NazwaFormat(wyswietl_miano_przestrzeni_nazw,miano_przestrzeni_nazw,czy_nazwa_strony_pusta) if((not czy_analiza)or(bez_przetwarzania))then return nil;end; if(czy_wyswietl_miano_przestrzeni_nazw)then if(czy_nazwa_strony_pusta)then if(not miano_przestrzeni_nazw)then return "%s:%s"; else return miano_przestrzeni_nazw..((miano_przestrzeni_nazw~="") and ":" or "").."%s"; end; end; else return "%s"; end; end; if(czy_niepusta_nazwa_przestrzeni_nazw)then if(czy_wyswietl_miano_przestrzeni_nazw)then if(not czy_nazwa)then if((not czy_kreska_dolna)and(not hash))then nazwa_strony_linku=((czy_analiza) and (not bez_przetwarzania)) and techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](nazwa_strony_linku) or nazwa_strony_linku; if((czy_nazwa_strony_pusta)and(czy_analiza)and(not bez_przetwarzania))then nazwa_strony_linku="%s";end; ---- local aliases; local alias=args["alias miana przestrzeni nazw"] or args["alias"] or args["i"]; local czy_alias=parametry_modul.CzyTak(alias); if(czy_alias)then if((not czy_dyskusja)and(not czy_analiza))then local wiki_modul=require("Module:Wiki"); if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; end; if(czy_biezaca)then local uchwyt=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,uchwyt="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak"} if(uchwyt)then aliases=uchwyt.aliases; --miano_przestrzeni_nazw=uchwyt.name; end; else local uchwyt=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,uchwyt="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(uchwyt)then if(parametry_modul.TypeTable(uchwyt))then aliases=uchwyt.aliasy; --miano_przestrzeni_nazw=uchwyt[1]; else --miano_przestrzeni_nazw=uchwyt; aliases={}; end; end; end; end; ---- if((czy_alias)and(parametry_modul.CzyTak(aliases)))then if(parametry_modul["CzySąElementyNumerowaneTablicy"](aliases))then alias=mw.getContentLanguage():uc(alias); for _,value in pairs(aliases)do if((mw.getContentLanguage():uc(value))==alias)then return alias..":"..nazwa_strony_linku; end; end; end; end; if(not miano_przestrzeni_nazw)then return nil;end; local miano_przestrzeni_nazw_zmienna_tymczasowa; if(czy_biezaca)then miano_przestrzeni_nazw_zmienna_tymczasowa=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; nazwa_strony_linku=((miano_przestrzeni_nazw_zmienna_tymczasowa)and(not czy_nazwa_strony_pusta)and(not prze_nie_main)) and nazwy_modul["NAZWASTRONY"](nowa_nazwa_strony_linku,tabela_nazw) or nazwa_strony_linku; else miano_przestrzeni_nazw_zmienna_tymczasowa=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} or miano_przestrzeni_nazw; nazwa_strony_linku=((miano_przestrzeni_nazw_zmienna_tymczasowa)and(not czy_nazwa_strony_pusta)and(not prze_nie_main)) and nazwy_modul["NAZWASTRONY"]{nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,tabela_nazw} or nazwa_strony_linku; end; if(not miano_przestrzeni_nazw_zmienna_tymczasowa)then return nil;end; return ((miano_przestrzeni_nazw_zmienna_tymczasowa~="") and (miano_przestrzeni_nazw_zmienna_tymczasowa..":") or "")..((((czy_analiza)and(not bez_przetwarzania))and(nazwa_strony_linku=="")) and "%s" or nazwa_strony_linku); else local nazwa=hash and("#"..hash) or nowa_nazwa_strony_linku; nazwa=((czy_analiza) and (not bez_przetwarzania)) and techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](nazwa) or nazwa; nazwa=Nazwa(nazwa); return nazwa; end; end; else if(not czy_nazwa)then if((not czy_kreska_dolna)and(not hash))then if((czy_nazwa_strony_pusta)and((czy_analiza)and(not bez_przetwarzania)))then return "%s"; end; local nazwa=nazwa_strony_linku; nazwa=Nazwa(nazwa); return nazwa; else if((czy_nazwa_strony_pusta)and((czy_analiza)and(not bez_przetwarzania)))then return "%s"; end; local nazwy_modul=require("Module:Nazwy"); local nazwa=hash and ("#"..hash) or nazwy_modul["NAZWASTRONY"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,},tabela_nazw); nazwa=Nazwa(nazwa); return nazwa; end; end; end; else if(not czy_nazwa)then if((not czy_kreska_dolna)and(not hash))then local wynik_nazwa=NazwaFormat(czy_wyswietl_miano_przestrzeni_nazw,miano_przestrzeni_nazw,czy_nazwa_strony_pusta); if(wynik_nazwa)then return wynik_nazwa;end; local nazwa=nowa_nazwa_strony_linku; nazwa=Nazwa(nazwa); return nazwa; else if(czy_nazwa_strony_pusta)then local wynik_nazwa=NazwaFormat(czy_wyswietl_miano_przestrzeni_nazw,miano_przestrzeni_nazw,czy_nazwa_strony_pusta); if(wynik_nazwa)then return wynik_nazwa;end; end; local nazwy_modul=require("Module:Nazwy"); local nazwa=hash and("#"..hash) or nowa_nazwa_strony_linku; nazwa=Nazwa(nazwa); return nazwa; end; end; end; end; local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]) or parametry_modul.CzyTak(args["bp"]); local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]) or parametry_modul.CzyTak(args["bk"]); local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~=""))or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$")or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*#(.*)$"))))) or nil); local nazwa=czy_nazwa and (args[2] and (((czy_analiza) and (not bez_przetwarzania)) and techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](args[2]) or args[2]) or nil) or NazwaLinkuDoStrony(); local po=args["po"] or args["p"]; local za=args["za"] or args["z"]; if(not bez_przetwarzania)then return p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,hash,nazwa,za,po,false,nil,nil,nil,true,wyswietl_miano_przestrzeni_nazw,czy_dyskusja,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem); else local link=p.TworzLinkBezPrzetwarzania(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,(not czy_strona_lokalna) and nowa_nazwa_strony_linku or (hash and "" or nowa_nazwa_strony_linku),hash,nazwa,za,po,z_kodowaniem); if(not bez_znacznikow)then return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,hash or ((not czy_kreska_dolna) and mw.ustring.match(nazwa_strony_linku,"#") or nil),nil,nil); else return link; end; end; end; function p.ZamianaKategoriiNaLinki(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr("tekst") or PobierzParametr(1); local techniczne_modul=require("Module:Techniczne"); local nazwy_np_modul=wm.loadData("Module:Nazwy/Np"); local kategoria_polska=nazwy_np_modul.Category; local wzor_kategorii_polskiej=techniczne_modul["WzórDanejPrzestrzeniNazw"](kategoria_polska) tekst=mw.ustring.gsub(tekst,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|%[%]]+)%s*|%s*([^%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%2]]"); tekst=mw.ustring.gsub(tekst,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1]]"); tekst=mw.ustring.gsub(tekst,"%[%[%s*"..wzor_kategorii_polskiej.."%s*:%s*([^|%[%]]+)%s*|%s*([^%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%2]]"); tekst=mw.ustring.gsub(tekst,"%[%[%s*"..wzor_kategorii_polskiej.."%s*:%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1]]"); return tekst; end; return p; 9qsowuqsv875oou58bd36ooal92abyk 539973 539971 2026-04-17T19:03:44Z Persino 2851 539973 Scribunto text/plain local p={}; p["PrzetłumaczZnakZastępczyNaStronę"]=function(nazwa_przestrzeni_nazw,nazwa_strony,kod_jezyka,kod_projektu,hash) local czy_pusta_nazwa_przestrzeni_nazw=mw.ustring.match(nazwa_przestrzeni_nazw,"^([%s_:]*)$"); local czy_pusta_nazwa_strony=mw.ustring.match(nazwa_strony,"^([%s_:]*)#.*$") or mw.ustring.match(nazwa_strony,"^([%s_:]*)$"); if(not czy_pusta_nazwa_przestrzeni_nazw and czy_pusta_nazwa_strony)then local tabglownestronyprojektu=mw.loadData("Module:Nazwy/przestrzenie").tabnp; local parametry_modul=require("Module:Parametry"); nazwa_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_przestrzeni_nazw); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(not czy_biezaca)then local nazwy_modul=require("Module:Nazwy"); local wiki_modul=require("Module:Wiki"); local nazwa_kanoniczna_nazwy_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["przedmiotowa"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} local nazwa_bazowa_strony=tabglownestronyprojektu[nazwa_kanoniczna_nazwy_przestrzeni_nazw]; if(nazwa_bazowa_strony)then local nazwa_strony_na_innym_projekcie=wiki_modul.WikidaneOdpowiednikStrony{ ["nazwa strony"]=nazwa_bazowa_strony, ["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu, ["kod języka bazy"]="pl", ["kod projektu bazy"]=(nazwa_kanoniczna_nazwy_przestrzeni_nazw~="Project")and "w" or "b", } if(nazwa_strony_na_innym_projekcie)then local nazwa_strony=nazwy_modul["NAZWASTRONY"]({["nazwa"]=nazwa_strony_na_innym_projekcie,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu}); return ((nazwa_przestrzeni_nazw~="")and (nazwa_przestrzeni_nazw..":") or "")..nazwa_strony,false; else return nazwa_bazowa_strony,false; end; end; else local nazwy_modul=require("Module:Nazwy"); if(hash)then local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={}; local prze_bierzacej_strony=nazwy_modul["NAZWAPRZESTRZENI"](nil,tabela_nazw); local nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,}; if(nazwa_przestrzeni_nazw==prze_bierzacej_strony)then return nazwy_modul["PEŁNANAZWASTRONY"](nil,tabela_nazw),true; end; end; local nazwy_modul=require("Module:Nazwy"); local nazwa_kanoniczna_nazwy_przestrzeni_nazw=nazwy_modul.Np{["nazwa"]=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["przedmiotowa"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak"} local nazwa_strony_glownych_stron_projektu=tabglownestronyprojektu[nazwa_kanoniczna_nazwy_przestrzeni_nazw]; if(nazwa_strony_glownych_stron_projektu)then local nazwa_strony=nazwy_modul["NAZWASTRONY"]({["nazwa"]=nazwa_strony_glownych_stron_projektu}); return ((nazwa_przestrzeni_nazw~="")and (nazwa_przestrzeni_nazw..":") or "")..nazwa_strony,false; end; end; elseif czy_pusta_nazwa_przestrzeni_nazw and czy_pusta_nazwa_strony then local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} if((czy_biezaca)and(hash))then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"](),true; end; local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local tablokalnesiostrzane=wiki_interwiki_modul.tablica_lokalne_siostrzane; if(tablokalnesiostrzane[kod_projektu])then local wiki_modul=require("Module:Wiki"); local pudelko_modul=require("Module:Pudełko"); local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"](); if(not czy_biezaca)then local nazwa_strony_glownej_na_innym_projekcie=wiki_modul.WikidaneOdpowiednikStrony{ ["nazwa strony"]=strona_glowna_tego_projektu, ["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu, } if(nazwa_strony_glownej_na_innym_projekcie)then return nazwa_strony_glownej_na_innym_projekcie,false; end; else return strona_glowna_tego_projektu,false; end; end; end; return ((nazwa_przestrzeni_nazw~="")and (nazwa_przestrzeni_nazw..":") or "")..nazwa_strony,false; end; p["PoprawLinki"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_pierwszy=PobierzParametr(1); local z_kodowaniem=PobierzParametr("uri") or PobierzParametr(2); z_kodowaniem=parametry_modul.CzyTak(z_kodowaniem); local function pojedynczy_link(link) local strona=mw.ustring.match(link,"^%[%[:?([^%[%]|]*)"); local nazwa=mw.ustring.match(link,"^%[%[[^|]*|([^%[%]]*)%]%]$") or strona; local z_kodowaniem_temp=(mw.ustring.match(strona,"%%%x%x")and true or false) or z_kodowaniem; link=p.TworzenieWikiLinku(nil,nil,nil,strona,nil,nazwa,nil,nil,false,nil,nil,nil,nil,nil,nil,nil,z_kodowaniem_temp); return link; end; return mw.ustring.gsub(argument_pierwszy,"(%[%[[^%[%]]*%]%])",function(s)return pojedynczy_link(s);end); end; p["WydobądźLinki"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local wartosc,_=PobierzParametr(1); local z_kodowaniem=PobierzParametr("uri") or PobierzParametr(2); local specjalne_modul=require("Module:Specjalne"); wartosc=specjalne_modul["UsuńKomentarze"](wartosc); wartosc=specjalne_modul["UsuńSzablonyStylów"](wartosc); wartosc=specjalne_modul["UsuńZnaczniki"](wartosc); wartosc=specjalne_modul["UsuńKategorie"](wartosc); wartosc=specjalne_modul["UsuńWywołaniaPlików"](wartosc); wartosc=specjalne_modul["UsuńInterwiki"](wartosc); local linki_modul=require("Module:Linki"); wartosc=linki_modul["PoprawLinki"]{wartosc,z_kodowaniem}; return wartosc; end; function p.TworzenieWikiLinku(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow,z_kodowaniem) if(not czy_url)then local parametry_modul=require("Module:Parametry"); local czy_klucz_projektu_do_projektu_linku=parametry_modul.CzyTak(klucz_projektu_do_projektu_linku); local czy_kod_jezyka_do_projektu_linku=parametry_modul.CzyTak(kod_jezyka_do_projektu_linku); local czy_kod_projektu_do_projektu_linku=parametry_modul.CzyTak(kod_projektu_do_projektu_linku); local czy_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku); local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa); local czy_po=parametry_modul.CzyTak(po); if(not czy_naglowek_strony)then if(czy_nazwa_strony_linku)then local html_modul=require("Module:Html"); local tabela_nazw_adresu={}; local strona_zmienna_tymczasowa=html_modul["NazwaStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu) local naglowek_zmienna_tymczasowa=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); if(strona_zmienna_tymczasowa and naglowek_zmienna_tymczasowa)then nazwa_strony_linku=strona_zmienna_tymczasowa; naglowek_zmienna_tymczasowa=parametry_modul["Odstępy"]{[1]=naglowek_zmienna_tymczasowa,[2]="tak",[3]="tak",}; if(parametry_modul.CzyTak(naglowek_zmienna_tymczasowa))then naglowek_strony=naglowek_zmienna_tymczasowa; czy_naglowek_strony=true; end; end; end; else naglowek_strony=parametry_modul["Odstępy"]{[1]=naglowek_strony,[2]="tak",[3]="tak",}; if(not parametry_modul.CzyTak(naglowek_strony))then czy_naglowek_strony=false; naglowek_strony=nil; end; end; --- local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local interwikimap=wiki_interwiki_modul.interwikimap; local interwikisiostrzaneangielskie=wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie; local wiki_modul=require("Module:Wiki"); local kod_jezyka_uzyskany_poczatkowy,kod_projektu_uzyskany_poczatkowy=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku); local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); if(not kod_jezyka_uzyskany_poczatkowy or not kod_projektu_uzyskany_poczatkowy)then kod_jezyka_uzyskany_poczatkowy=kod_jezyka_uzyskany_poczatkowy or kod_jezyka_tego_projektu; kod_projektu_uzyskany_poczatkowy=kod_projektu_uzyskany_poczatkowy or kod_projektu_tego_projektu; end; local czy_pelna_nazwa_strony_prawidlowa=parametry_modul["CzyTakCiąg"](nazwa_strony_linku) and not mw.ustring.match(nazwa_strony_linku,"^[%s_:]+$") or nil; local tablica_kodow={}; local kod_jezyka_koncowy;local kod_projektu_koncowy; --------------------------------------------------------------------- kod_jezyka_koncowy=kod_jezyka_uzyskany_poczatkowy; kod_projektu_koncowy=kod_projektu_uzyskany_poczatkowy; --------------------------------------------------------------------- local kod_jezyka_poczatkowy,kod_projektu_poczatkowy; if(czy_pelna_nazwa_strony_prawidlowa)then nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy,kod_jezyka_poczatkowy,kod_projektu_poczatkowy=wiki_modul.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy,bez_przetwarzania_kodow and tablica_kodow or nil); czy_pelna_nazwa_strony_prawidlowa=parametry_modul["CzyTakCiąg"](nazwa_strony_linku) and not mw.ustring.match(nazwa_strony_linku,"^[%s_:]+$") or nil; end; ---- if(not nazwa)then nazwa=nazwa_strony_linku..(czy_naglowek_strony and ("#"..naglowek_strony) or ""); nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," "); czy_nazwa=parametry_modul.CzyTak(nazwa); end local ciag_tablica_kodow=""; if(bez_przetwarzania_kodow)then if(kod_jezyka_poczatkowy)then if((kod_jezyka_uzyskany_poczatkowy==kod_jezyka_tego_projektu)and(kod_projektu_uzyskany_poczatkowy==kod_projektu_tego_projektu))then kod_jezyka_uzyskany_poczatkowy=kod_jezyka_poczatkowy; else ciag_tablica_kodow=kod_jezyka_poczatkowy; end; elseif(kod_projektu_poczatkowy)then if((kod_jezyka_uzyskany_poczatkowy==kod_jezyka_tego_projektu)and(kod_projektu_uzyskany_poczatkowy==kod_projektu_tego_projektu))then kod_projektu_uzyskany_poczatkowy=kod_projektu_poczatkowy; else ciag_tablica_kodow=kod_projektu_poczatkowy; end; end; local ciag_tablica_kodow_zmienna_tymczasowa=table.concat(tablica_kodow,":"); ciag_tablica_kodow=ciag_tablica_kodow..(((ciag_tablica_kodow~="")and(ciag_tablica_kodow_zmienna_tymczasowa~=""))and ":" or "")..ciag_tablica_kodow_zmienna_tymczasowa; else kod_jezyka_uzyskany_poczatkowy=kod_jezyka_koncowy; kod_projektu_uzyskany_poczatkowy=kod_projektu_koncowy; end; local nazwy_modul=require("Module:Nazwy"); local czy_dyskusja=parametry_modul.CzyTak(dyskusja); local pierwsza_litera=((czy_pelna_nazwa_strony_prawidlowa)and(not czy_dyskusja)) and mw.ustring.match(nazwa_strony_linku,"^(%a)") or nil; local tabela_nazw={}; local nazwaprzestrzeni=czy_pelna_nazwa_strony_prawidlowa and ((not czy_dyskusja)and nazwy_modul["NAZWAPRZESTRZENI"]({[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy},tabela_nazw) or nazwy_modul["PRZESTRZEŃDYSKUSJI"]({[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw)) or ""; local nazwastrony=czy_pelna_nazwa_strony_prawidlowa and nazwy_modul["NAZWASTRONY"]({[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw) or ""; local linki_modul=require("Module:Linki"); local strona_inna_zmienna_tymczasowa,czy_strona_lokalna=linki_modul["PrzetłumaczZnakZastępczyNaStronę"](nazwaprzestrzeni,nazwastrony,kod_jezyka_koncowy,kod_projektu_koncowy,czy_naglowek_strony); local czy_pelna_nazwa_strony_prawidlowa=((czy_pelna_nazwa_strony_prawidlowa)and(parametry_modul["CzyTakCiąg"](strona_inna_zmienna_tymczasowa) and not mw.ustring.match(strona_inna_zmienna_tymczasowa,"^[%s_:]+$")) or strona_inna_zmienna_tymczasowa); local function TabelaNazw()tabela_nazw_temp={};tabela_nazw_temp.czy_aktualna_wiki=tabela_nazw.czy_aktualna_wiki;return tabela_nazw_temp;end; if(nazwastrony=="")then local tabela_nazw=TabelaNazw(); local nazwa_strony=nazwy_modul["NAZWASTRONY"]({[1]=strona_inna_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw) local techniczne_modul=require("Module:Techniczne"); local nowa_nazwa_strony=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](nazwa_strony); if(nazwa)then local f,ile=mw.ustring.gsub(nazwa,"%%s",function()return nil;end); if(ile==1)then nazwa=mw.ustring.format(nazwa,nowa_nazwa_strony) or nil; elseif(ile==2)then local nowa_nazwa_przestrzeni=nazwy_modul[(czy_dyskusja) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"]({[1]=strona_inna_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw); if(tabela_nazw.czy_aktualna_wiki)then nowa_nazwa_przestrzeni=nazwy_modul.Np{nazwa=nowa_nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nowa_nazwa_przestrzeni=nazwy_modul.NpDane{nazwa=nowa_nazwa_przestrzeni,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} or nowa_nazwa_przestrzeni; end; nazwa=mw.ustring.format(nazwa,nowa_nazwa_przestrzeni,nowa_nazwa_strony) or nil; end; end; end; strona_inna_zmienna_tymczasowa=strona_inna_zmienna_tymczasowa or nazwa_strony_linku; local function NazwaStronyDyskusji(strona) if(czy_dyskusja and czy_pelna_nazwa_strony_prawidlowa)then return nazwy_modul["NAZWASTRONYDYSKUSJI"]({[1]=strona,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},TabelaNazw()); end; return strona; end; local strona_zmienna_tymczasowa=NazwaStronyDyskusji(strona_inna_zmienna_tymczasowa); nazwa_strony_linku=((not czy_strona_lokalna or ((czy_dyskusja)and(nazwy_modul["NAZWAPRZESTRZENI"]({[1]=strona_inna_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},TabelaNazw())~=nazwy_modul["NAZWAPRZESTRZENI"]({[1]=strona_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},TabelaNazw()))))and strona_zmienna_tymczasowa or ""); nazwa_strony_linku=pierwsza_litera and mw.ustring.gsub(nazwa_strony_linku,"^["..mw.getContentLanguage():ucfirst(pierwsza_litera)..mw.getContentLanguage():lcfirst(pierwsza_litera).."]",pierwsza_litera) or nazwa_strony_linku; czy_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku); local function BiezacaWikiDwukropek() local czy_biezace_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; local czy_wstawiac_dwukropek; if(czy_biezace_wiki)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwaprzestrzeni==nazwy_np_modul.Category)or(nazwaprzestrzeni==nazwy_np_modul.File))then czy_wstawiac_dwukropek=true; end; end; return czy_wstawiac_dwukropek; end; local pudelko_modul=require("Module:Pudełko"); local jezykowe_projekty=wiki_interwiki_modul.tablica_lokalne_lingwistyczne_siostrzane; local projekty_nie_en=jezykowe_projekty[kod_projektu_uzyskany_poczatkowy]; local czy_kod_jezyka_uzyskany_poczatkowy=(kod_jezyka_uzyskany_poczatkowy~=kod_jezyka_tego_projektu); local czy_kod_projektu_uzyskany_poczatkowy=(kod_projektu_uzyskany_poczatkowy~=kod_projektu_tego_projektu); local html_modul=require("Module:Html"); local function AdresLinku() local kody_poczatkowe=(not projekty_nie_en and (czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or "") or(czy_kod_jezyka_uzyskany_poczatkowy and kod_jezyka_uzyskany_poczatkowy..":"..(czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or "") or (czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or ""))); local tablica_kodow=kody_poczatkowe..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or ""); local czy_wstawiac_dwukropek=((tablica_kodow~="")and (projekty_nie_en and (czy_kod_jezyka_uzyskany_poczatkowy and ":" or "") or "") or (BiezacaWikiDwukropek() and ":" or "")); local strona;local parametry;local naglowek; if(czy_nazwa_strony_linku)then strona=html_modul.EncodeElementyAdresuStrony(nazwa_strony_linku,nil,z_kodowaniem); end; if(czy_parametry_strony)then parametry=html_modul.EncodeElementyAdresuStrony(parametry_strony,true,z_kodowaniem); parametry="?"..parametry; end; if(czy_naglowek_strony)then naglowek=html_modul.EncodeElementyAdresuStrony(naglowek_strony,nil,z_kodowaniem); naglowek="#"..naglowek; end; local zmienna_linkowa=tablica_kodow..(strona or "") ..(parametry or "")..(naglowek or ""); return zmienna_linkowa, czy_wstawiac_dwukropek; end; nazwa=nazwa and mw.ustring.gsub(nazwa,"^[%s_]*","") or nil; nazwa=nazwa and mw.ustring.gsub(nazwa,"[%s_]*$","") or nil; --nazwa=nazwa and mw.ustring.gsub(nazwa,"[%s_]+"," ") or nil; if(czy_ogolne and not czy_nazwa)then if(parametry_modul.CzyTak(wyswietl))then nazwa=strona_zmienna_tymczasowa; czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa); else if((czy_pelna_nazwa_strony_prawidlowa)and(nazwastrony~=""))then nazwa=nazwastrony; else nazwa=nazwy_modul["NAZWASTRONY"]{[1]=strona_zmienna_tymczasowa,["kod języka"]=kod_jezyka_uzyskany_poczatkowy,["kod projektu"]=kod_projektu_uzyskany_poczatkowy,}; end; czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa); end end; local zmienna_linkowa; local aktywny; if(not czy_wewnetrzny_z_fullurl)then local czy_wstawiac_dwukropek; zmienna_linkowa,czy_wstawiac_dwukropek=AdresLinku(); zmienna_linkowa=mw.ustring.gsub(zmienna_linkowa,"[%s_]+"," "); local czy_za=parametry_modul.CzyTak(za); if(czy_za or(nazwa and (nazwa~=zmienna_linkowa)))then zmienna_linkowa="[["..czy_wstawiac_dwukropek..zmienna_linkowa..(czy_nazwa and "|"..nazwa..(czy_za and za or "") or (czy_za and ("|"..zmienna_linkowa..za) or "")).."]]"..(czy_po and po or ""); else zmienna_linkowa="[["..czy_wstawiac_dwukropek..zmienna_linkowa.."]]"..(czy_po and po or ""); end aktywny=false; else aktywny=true; local serwer; local projekt; if(projekty_nie_en)then for kod_specjalny_projektu,kod_projektu_interwiki in pairs(wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie)do if(kod_projektu_uzyskany_poczatkowy==kod_projektu_interwiki)then projekt=kod_specjalny_projektu; end; end; end; local function Protocol(kod_projektu) local interwikimap=wiki_interwiki_modul.interwikimap; local url=interwikimap[kod_projektu]; if(not url)then return "";end; return mw.ustring.match(url,"^([^/]*)//"); end; local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local nazwy_np_modul=require("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); local czy_specjalna=(nazwaprzestrzeni==nazwy_np_modul.Special); local ciag_tablica_kodow_zmienna_tymczasowa=mw.ustring.gsub(strona_zmienna_tymczasowa,"[%s_]+","_"); if(((projekt)and(czy_parametry_strony)and(czy_specjalna))or((projekt)and(wersja_linku=="w")))then local adres=Protocol(kod_projektu_uzyskany_poczatkowy).."//"..kod_jezyka_uzyskany_poczatkowy.."."..projekt..".org/w/index.php?title="..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and "&"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za)and (" "..adres..za) or "")).."]"..(czy_po and po or ""); elseif(((not projekty_nie_en)and(czy_parametry_strony)and(czy_specjalna))or((not projekty_nie_en)and(wersja_linku=="w")))then local techniczne_modul=require("Module:Techniczne"); local wiki_nie_jezykowe=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane[kod_projektu_uzyskany_poczatkowy]; local serwer=mw.ustring.match(wiki_nie_jezykowe,"^([^/]*//[^/]*)") local adres=serwer.."/w/index.php?title="..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and "&"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za)and (" "..adres..za) or "")).."]"..(czy_po and po or ""); elseif(((projekt)and(czy_parametry_strony))or((projekt)and(wersja_linku=="wiki")))then local strona_zmienna_tymczasowa,_=mw.ustring.gsub(strona_zmienna_tymczasowa,"[_%s]+","_"); local adres=Protocol(kod_projektu_uzyskany_poczatkowy).."//"..kod_jezyka_uzyskany_poczatkowy.."."..projekt..".org/wiki/"..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and " "..nazwa..(parametry_modul.CzyTak(za) and za or "") or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); elseif(((not projekty_nie_en)and(czy_parametry_strony))or((not projekty_nie_en)and(wersja_linku=="wiki")))then local wiki_nie_jezykowe=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane[kod_projektu_uzyskany_poczatkowy]; local strona_zmienna_tymczasowa,_=mw.ustring.gsub(ciag_tablica_kodow_zmienna_tymczasowa,"[_%s]+","_"); strona_zmienna_tymczasowa=((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..strona_zmienna_tymczasowa; strona_zmienna_tymczasowa=html_modul.EncodeHtml(strona_zmienna_tymczasowa); strona_zmienna_tymczasowa,_=mw.ustring.gsub(strona_zmienna_tymczasowa,"([%%])(%d+)","%%%%%2"); strona_zmienna_tymczasowa,_=mw.ustring.gsub(wiki_nie_jezykowe,"$1",strona_zmienna_tymczasowa); local adres=strona_zmienna_tymczasowa..(czy_parametry_strony and "?"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); else local pudelko_modul=require("Module:Pudełko"); zmienna_linkowa=(parametry_modul.CzyTak(klucz_projektu)and ((not(klucz_projektu==pudelko_modul["Klucz projektu tego projektu"]()))and (klucz_projektu..":")or "" ) or ((parametry_modul.CzyTak(kod_jezyka_uzyskany_poczatkowy)and ((not(kod_jezyka_uzyskany_poczatkowy==pudelko_modul["Kod języka tego projektu"]()))and(kod_jezyka_uzyskany_poczatkowy..":")or "") or "")..(parametry_modul.CzyTak(kod_projektu_uzyskany_poczatkowy)and ((not(kod_projektu_uzyskany_poczatkowy==pudelko_modul["Kod projektu tego projektu"]()))and(kod_projektu_uzyskany_poczatkowy..":")or "") or ""))) ..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..strona_zmienna_tymczasowa; local strona=(czy_parametry_strony and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); local adres=tostring(mw.uri.fullUrl(zmienna_linkowa))..strona; zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); end; end; return zmienna_linkowa,kod_jezyka_koncowy,kod_projektu_koncowy,strona_zmienna_tymczasowa,czy_naglowek_strony,aktywny; else local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local czy_nazwa; if(not nazwa)then nazwa=mw.ustring.match(nazwa_strony_linku,"//[^/]*/(.*)$"); nazwa=html_modul.DecodeHtml(nazwa); czy_nazwa=parametry_modul.CzyTak(nazwa); else czy_nazwa=parametry_modul.CzyTak(nazwa); end; local czy_po=parametry_modul.CzyTak(po); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); nazwa_strony_linku=mw.ustring.gsub(nazwa_strony_linku,"[%s_]+","_"); nazwa_strony_linku=mw.ustring.gsub(nazwa_strony_linku,"//([^/]*)/(.*)$", function(s1,s2)return "//"..s1.."/"..html_modul.EncodeHtml(s2);end) local adres=nazwa_strony_linku..(czy_parametry_strony and "?"..html_modul.EncodeParametryHtml(parametry_strony) or "") ..(czy_naglowek_strony and "#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony)) or ""); local zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); return zmienna_linkowa,nil,nil,nazwa_strony_linku,czy_naglowek_strony,false; end; end; function p.TworzLinkBezPrzetwarzania(klucz_projektu,kod_jezyka,kod_projektu,strona,naglowek,nazwa,za,po,z_kodowaniem) local parametry_modul=require("Module:Parametry"); local adres=(parametry_modul.CzyTak(klucz_projektu)and (klucz_projektu..":") or ((parametry_modul.CzyTak(kod_jezyka)and (kod_jezyka..":") or "")..(parametry_modul.CzyTak(kod_projektu)and (kod_projektu..":") or ""))) ..strona..(parametry_modul.CzyTak(naglowek) and ("#"..naglowek) or ""); local html_modul=require("Module:Html"); adres=html_modul.AdresProjektuEncodeHtml(adres,z_kodowaniem); local wartosc="[[:"..adres..(parametry_modul.CzyTak(nazwa) and ("|"..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and ("|"..adres..za) or "")).."]]"..(po and po or ""); return wartosc; end; function p.LinkWikidane(link,klucz_projektu,kod_jezyka,kod_projektu,strona,czy_naglowek,czy_url,czy_parametry,aktywny) local wiki_modul=require("Module:Wiki"); local klasa=wiki_modul.KodyKlasStronyNaDanejWiki{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona,["nagłówek"]=czy_naglowek,["url"]=czy_url,["parametry"]=czy_parametry,["aktywny"]=aktywny,}; local nazwy_modul=require("Module:Nazwy"); local spanramka=mw.html.create('span'); spanramka:addClass(klasa); spanramka:addClass("link"); spanramka:wikitext(link); return tostring(spanramka:allDone()); end; function p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem) local parametry_modul=require("Module:Parametry"); parametry_strony=czy_wewnetrzny_z_fullurl and parametry_strony or nil; local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local html_modul=require("Module:Html"); nazwa_strony_linku=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_strony_linku); local wartosc_parent,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,czy_naglowek_strony,aktywny=p.TworzenieWikiLinku(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow,z_kodowaniem); if(parametry_modul.CzyTak(bez_znacznikow))then return wartosc_parent;end; return p.LinkWikidane(wartosc_parent,nil,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,czy_naglowek_strony,czy_url,czy_parametry_strony,aktywny); end; function p.RozwinKreskaPoziomowa(miano_przestrzeni_nazw,nazwa_strony_linku,naglowek,czy_link_url,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,tabela_nazw,__FUNKCJA) local nowa_nazwa_strony_linku; local czy_kreska_dolna;local hash;local prze_nie_main; local czy_strona_lokalna; if(not czy_analiza)then czy_kreska_dolna=mw.ustring.match(nazwa_strony_linku,"^[%s_:]*$") or mw.ustring.match(nazwa_strony_linku,":[%s_]*$"); hash=(not czy_kreska_dolna)and ((not czy_link_url) and mw.ustring.match(nazwa_strony_linku,"^[_%s]*#(.*)$") or nil) or (((czy_kreska_dolna)and(czy_link_url) and require("Module:Parametry").CzyTak(naglowek)) and naglowek or nil); if((czy_kreska_dolna)or(hash))then local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku); local miano_przestrzeni_nazw_maly=((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~=""))and mw.ustring.lower(miano_przestrzeni_nazw) or miano_przestrzeni_nazw; if((not miano_przestrzeni_nazw_maly)or((miano_przestrzeni_nazw_maly=="")or(miano_przestrzeni_nazw_maly=="(main)")or(miano_przestrzeni_nazw_maly=="(główna)")))then miano_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"]({nazwa=nazwa_strony_linku,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw); end; local nazwa_strony=nazwy_modul["NAZWASTRONY"]({nazwa=nazwa_strony_linku,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw); if(nazwa_strony=="")then nowa_nazwa_strony_linku,czy_strona_lokalna=p["PrzetłumaczZnakZastępczyNaStronę"](miano_przestrzeni_nazw or "","",kod_jezyka,kod_projektu,hash); else nowa_nazwa_strony_linku=nazwa_strony_linku; end; else prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil; nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku; end; else prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil; nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku; end; nowa_nazwa_strony_linku=__FUNKCJA(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main); return nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna; end; p["GanerujSkładoweURL"] = function(args) local klucz_projektu_do_projektu_linku; local kod_jezyka_do_projektu_linku; local kod_projektu_do_projektu_linku; local miano_przestrzeni_nazw; local nazwa_strony_linku=args["strona"] or args["s"] or "_"; local html_modul=require("Module:Html"); nazwa_strony_linku=nazwa_strony_linku and html_modul.DecodeHtml(nazwa_strony_linku) or nil; local parametry_modul=require("Module:Parametry"); local w=args["wersja linku"] or args["w"]; local tab_w={ ["w"]=true, ["wiki"]=true, }; local wersja_linku=parametry_modul.CzyTak(w) and (tab_w[w] and w or nil) or ""; local _; local strony_modul=require("Module:Strony"); local czy_url=strony_modul.SprawdzanieURL(nazwa_strony_linku); local parametry_strony;local naglowek_strony;local nazwa;local po;local po;local za; nazwa=args["nazwa"] or args["n"]; po=args["po"] or args["p"]; za=args["za"] or args["z"]; local function DaneStrony(nazwa_strony_linku_parametr,adres) if(parametry_modul.CzyTak(nazwa_strony_linku_parametr))then if(mw.ustring.match(nazwa_strony_linku_parametr,"^/wiki/"))then nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/wiki/",""); local tabela_nazw_adresu={}; naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); elseif(mw.ustring.match(nazwa_strony_linku_parametr,"^/w/"))then nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/w/",""); local tabela_nazw_adresu={}; local html_modul=require("Module:Html"); naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); local nazwa_strony_jednostki,parametry_strony_jednostki=html_modul["NazwaStronyZParametrówStronyAdresu"](parametry_strony,true); parametry_strony=parametry_strony_jednostki or parametry_strony; nazwa_strony_linku_parametr=nazwa_strony_jednostki or nazwa_strony_linku_parametr; else nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/(.*)$","%1"); local tabela_nazw_adresu={}; local html_modul=require("Module:Html"); naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); end; else if((parametry_modul.CzyTak(kod_jezyka_do_projektu_linku))or(parametry_modul.CzyTak(kod_projektu_do_projektu_linku)))then if((not adres)or(mw.ustring.match(adres,"/$1$")))then local pudelko_modul=require("Module:Pudełko"); nazwa_strony_linku_parametr=pudelko_modul["Nazwa strony głównej projektu 2"]{[1]=kod_jezyka_do_projektu_linku,[2]=kod_projektu_do_projektu_linku,} or ""; end; end; end; parametry_strony=parametry_modul.CzyTak(parametry_strony) and parametry_strony or (args["parametry"] or args["c"]); naglowek_strony=parametry_modul.CzyTak(naglowek_strony) and naglowek_strony or (args["nagłówek"] or args["g"]); --nazwa=args["nazwa"] or args["n"]; local klucz_projektu_do_projektu_linku_temp=args["klucz projektu"] or args["k"]; klucz_projektu_do_projektu_linku=parametry_modul.CzyTak(klucz_projektu_do_projektu_linku_temp) and (klucz_projektu_do_projektu_linku_temp) or klucz_projektu_do_projektu_linku; local kod_jezyka_do_projektu_linku_temp=args["kod języka"] or args["kj"]; kod_jezyka_do_projektu_linku=parametry_modul.CzyTak(kod_jezyka_do_projektu_linku_temp) and (kod_jezyka_do_projektu_linku_temp) or kod_jezyka_do_projektu_linku; local kod_projektu_do_projektu_linku_temp=args["kod projektu"] or args["kp"]; kod_projektu_do_projektu_linku=parametry_modul.CzyTak(kod_projektu_do_projektu_linku_temp) and (kod_projektu_do_projektu_linku_temp) or kod_projektu_do_projektu_linku; nazwa_strony_linku=nazwa_strony_linku_parametr; czy_url=false; end; if(not czy_url)then local miano_przestrzeni_nazw=args["miano przestrzeni nazw"] or args["przestrzeń"] or args["f"]; nazwa_strony_linku=parametry_modul["CzyTakCiąg"](miano_przestrzeni_nazw) and miano_przestrzeni_nazw..":"..nazwa_strony_linku or nazwa_strony_linku; DaneStrony(nazwa_strony_linku); else local html_modul=require("Module:Html"); local nazwa_strony_bez_protokolu=html_modul["UrlBezProtokołu"](nazwa_strony_linku); local serwer,nazwa_strony=html_modul["URLStrona"](nazwa_strony_bez_protokolu); local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local function SerwerWiki(serwer) local kod_jezyka_zmienna_tymczasowa,kod_specjalny_projektu=mw.ustring.match(serwer,"^(%w+)%.(%w+)%.org"); if((not kod_jezyka_zmienna_tymczasowa)or(not kod_specjalny_projektu))then kod_jezyka_zmienna_tymczasowa,kod_specjalny_projektu=mw.ustring.match(serwer,"^(%w+)%.[mM]%.(%w+)%.org"); end; local interwikisiostrzaneangielskie=wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie; local kod_projektu=interwikisiostrzaneangielskie[kod_specjalny_projektu]; local kod_jezyka=kod_jezyka_zmienna_tymczasowa and (mw.language.isKnownLanguageTag(kod_jezyka_zmienna_tymczasowa) and kod_jezyka_zmienna_tymczasowa or nil) or nil; return kod_jezyka,kod_projektu; end; local function JezykoweLubAngielskieProjekty(serwer_portalu) local kod_jezyka,kod_projektu=SerwerWiki(serwer_portalu); if(kod_jezyka and kod_projektu)then kod_jezyka_do_projektu_linku=kod_jezyka; kod_projektu_do_projektu_linku=kod_projektu; klucz_projektu_do_projektu_linku=nil; DaneStrony(nazwa_strony); return true; else local pozajezykoweprojektysiostrzane=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane; local techniczne_modul=require("Module:Techniczne"); for kod, url in pairs(pozajezykoweprojektysiostrzane)do local adres=html_modul["UrlBezProtokołu"](url); local serwer_portalu,nazwa_strony_portalu=html_modul["URLStrona"](adres); if(serwer_portalu)then if((serwer_portalu==serwer)and((mw.ustring.match(nazwa_strony_portalu,"%$1"))or(nazwa_strony==nazwa_strony_portalu)))then kod_jezyka_do_projektu_linku=kod_jezyka or "en"; kod_projektu_do_projektu_linku=--[[kod_projektu or]] kod; local nazwa_strony_spreparowana=nil; if(not mw.ustring.match(adres,"/wiki/%$1$"))then if(mw.ustring.match(url,"[:/]$1$"))then local url_wzor=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](adres); url_wzor=mw.ustring.gsub(url_wzor,"(%%$1)$","(.-)"); nazwa_strony_spreparowana=mw.ustring.match(nazwa_strony_bez_protokolu,"^"..url_wzor.."$"); if(not nazwa_strony_spreparowana)then return false; end; end; end; DaneStrony(nazwa_strony_spreparowana or nazwa_strony,adres); return true; end; end; end; end; end; local function __FUNKCJA() if(mw.ustring.match(serwer,"^upload%.wikimedia%.org$"))then DaneStrony(nazwa_strony); nazwa_strony=nazwa_strony_linku; nazwa_strony_linku="Media:"..mw.ustring.match(nazwa_strony,"([^/]*)$"); local kod_projektu_do_projektu_linku2,kod_jezyka_do_projektu_linku2=mw.ustring.match(nazwa_strony,"^([^/]*)/([^/]*)/.*$"); kod_jezyka_do_projektu_linku=kod_jezyka_do_projektu_linku or kod_jezyka_do_projektu_linku2; kod_projektu_do_projektu_linku=kod_projektu_do_projektu_linku or kod_projektu_do_projektu_linku2; czy_url=false; else local juz_tak=JezykoweLubAngielskieProjekty(serwer); if(not juz_tak)then local html_modul=require("Module:Html"); local tabela_nazw_adresu={}; naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); naglowek_strony=parametry_modul.CzyTak(naglowek_strony) and naglowek_strony or (args["nagłówek"] or args["g"]); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); parametry_strony=parametry_modul.CzyTak(parametry_strony) and parametry_strony or (args["parametry"] or args["c"]); nazwa_strony_linku=html_modul["NazwaStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); end; end; end; __FUNKCJA(); end; local czy_wewnetrzny_z_fullurl; if(not parametry_modul.CzyTak(parametry_strony))then if(wersja_linku=="")then if((klucz_projektu_do_projektu_linku)or(kod_jezyka_do_projektu_linku)or(kod_projektu_do_projektu_linku))then czy_wewnetrzny_z_fullurl=false; elseif(not czy_url)then czy_wewnetrzny_z_fullurl=false; else czy_wewnetrzny_z_fullurl=true; end; else czy_wewnetrzny_z_fullurl=true; end; else czy_wewnetrzny_z_fullurl=true; end; return klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url; end; p["Link wewnętrzny"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local klucz_projektu_do_projektu_linku=args["klucz projektu"]; local kod_jezyka_do_projektu_linku=args["kod języka"]; local kod_projektu_do_projektu_linku=args["kod projektu"]; local nazwa_strony_linku=args["strona"] or "_"; local nazwa=args["nazwa"]; local czy_nazwa=parametry_modul.CzyTak(nazwa); nazwa=czy_nazwa and nazwa or nil; local po=args["po"]; local za=args["za"]; local naglowek_strony=args["nagłówek"]; local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]); local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]); local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]); local z_kodowaniem=parametry_modul.CzyTak(args["uri"]); local czy_analiza=parametry_modul.CzyTak(args["analiza"]); local czy_naglowek=parametry_modul.CzyTak(naglowek_strony); local hash;local czy_kreska_dolna;local prze_nie_main;local czy_strona_lokalna;local nowa_nazwa_strony_linku; if(not czy_analiza)then nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa("",nazwa_strony_linku,naglowek_strony,czy_naglowek,nil,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,{},function(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main) return nowa_nazwa_strony_linku; end); nazwa=czy_nazwa and nazwa or (hash and ("#"..hash) or nil); else nowa_nazwa_strony_linku=nazwa_strony_linku; end; local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (((not czy_naglowek)and(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$")))or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*#(.*)$")))) or nil); if(not bez_przetwarzania)then return p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek and naglowek_strony or hash,nazwa,za,po,nil,nil,nil,nil,nil,nil,nil,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem); else local link=p.TworzLinkBezPrzetwarzania(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,(not czy_strona_lokalna) and nowa_nazwa_strony_linku or (hash and "" or nowa_nazwa_strony_linku),czy_naglowek and naglowek_strony or hash,nazwa,za,po,z_kodowaniem); if(not bez_znacznikow)then local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek_strony or hash or mw.ustring.match(nazwa_strony_linku,"#"),nil,nil); else return link; end; end; end; p["LinkURL"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local linki_modul=require("Module:Linki"); local klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url=linki_modul["GanerujSkładoweURL"](args); local czy_analiza=parametry_modul.CzyTak(args["analiza"]) or parametry_modul.CzyTak(args["a"]); local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]) or parametry_modul.CzyTak(args["bz"]); local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]) or parametry_modul.CzyTak(args["bp"]); local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]) or parametry_modul.CzyTak(args["bk"]); local z_kodowaniem=parametry_modul.CzyTak(args["uri"]) or parametry_modul.CzyTak(args["u"]); local czy_naglowek=parametry_modul.CzyTak(naglowek_strony); local hash;local czy_kreska_dolna;local prze_nie_main;local czy_strona_lokalna;local nowa_nazwa_strony_linku; if((not czy_analiza)and(not czy_url))then nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa("",nazwa_strony_linku,naglowek_strony,czy_naglowek,nil,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,{},function(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main) return nowa_nazwa_strony_linku; end); nazwa=parametry_modul.CzyTak(nazwa) and nazwa or (hash and ("#"..hash) or nil); else nowa_nazwa_strony_linku=nazwa_strony_linku; end; local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$"))) or nil); local function Bez_przetwarzania_lub_bez_znaczkow() if(parametry_modul.CzyTak(bez_przetwarzania))then local bez_znacznikow=parametry_modul.CzyTak(bez_znacznikow); local czy_parametry=parametry_modul.CzyTak(parametry_strony); local wartosc=((not czy_url)and((parametry_modul.CzyTak(klucz_projektu_do_projektu_linku)and (klucz_projektu_do_projektu_linku..":") or ((parametry_modul.CzyTak(kod_jezyka_do_projektu_linku)and (kod_jezyka_do_projektu_linku..":") or "")..(parametry_modul.CzyTak(kod_projektu_do_projektu_linku)and (kod_projektu_do_projektu_linku..":") or "")))..nowa_nazwa_strony_linku) or nil); local link; local po_linku=parametry_modul.CzyTak(po) and po or ""; if((not czy_url)and((czy_parametry)or(parametry_modul.CzyTak(wersja_linku))))then local adres=tostring(mw.uri.fullUrl(wartosc,"")); adres=((not parametry_modul.CzyTak(wersja_linku))or(wersja_linku=="wiki")) and adres or mw.ustring.gsub(adres,"/wiki/","/w/index.php?title=",1); local html_modul=require("Module:Html"); local parametry_i_naglowek=((czy_parametry)and ((((wersja_linku=="w")) and "&" or "?")..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or "") adres=adres..parametry_i_naglowek; link= "["..adres..(parametry_modul.CzyTak(nazwa) and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or (" "..nowa_nazwa_strony_linku))).."]"..po_linku; elseif(czy_url)then local html_modul=require("Module:Html"); local parametry_i_naglowek=((czy_parametry)and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or "") local adres=nowa_nazwa_strony_linku..parametry_i_naglowek; link= "["..adres..(parametry_modul.CzyTak(nazwa) and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or (" "..nowa_nazwa_strony_linku))).."]"..po_linku; else local naglowek=(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or ""); local adres=wartosc..naglowek; link="[[:"..adres..((parametry_modul.CzyTak(nazwa)) and ("|"..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and ("|"..adres..za) or "")).."]]"..po_linku; end; if not bez_znacznikow then local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek_strony,czy_url,czy_parametry_strony); else return link; end; end; end; local wynik=Bez_przetwarzania_lub_bez_znaczkow();if(wynik)then return wynik;end; return linki_modul.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,nil,nil,nil,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem); end; function p.UzyskajKodWikiLinku(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local linki_modul=require("Module:Linki"); local klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url=linki_modul["GanerujSkładoweURL"](args); local wiki_modul=require("Module:Wiki"); local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku); local pudelko_modul=require("Module:Pudełko"); kod_jezyka_koncowy=parametry_modul.CzyTak(kod_jezyka_koncowy) and kod_jezyka_koncowy or pudelko_modul["Kod języka tego projektu"](); kod_projektu_koncowy=parametry_modul.CzyTak(kod_projektu_koncowy) and kod_projektu_koncowy or pudelko_modul["Kod projektu tego projektu"](); local aktywny; local czy_nazwa=parametry_modul.CzyTak(nazwa_strony_linku); if(not czy_nazwa or not mw.ustring.match(nazwa_strony_linku,"_+"))then if((not czy_nazwa)and((not kod_jezyka_koncowy)or(kod_jezyka_koncowy==pudelko_modul["Kod języka tego projektu"]()))and((not kod_projektu_koncowy)or(kod_projektu_koncowy==pudelko_modul["Kod projektu tego projektu"]())))then if((parametry_modul.CzyTak(naglowek_strony)) or (not args["strona"] or args["strona"]=="") or ((args["strona"])and(mw.ustring.match(args["strona"],"^[_%s]*#[_%s]*$"))or(nil)))then aktywny=false; local nazwy_modul=require("Module:Nazwy"); nazwa_strony_linku=nazwy_modul["PEŁNANAZWASTRONY"](); end; else aktywny=true; end; else aktywny=true; local pudelko_modul=require("Module:Pudełko"); nazwa_strony_linku=pudelko_modul["Strona główna tego projektu"](); end; local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=wiki_modul.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy); --- local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local czy_pusta_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku); if(not czy_pusta_nazwa_strony_linku)then local linki_modul=require("Module:Linki"); nazwa_strony_linku,_=linki_modul["PrzetłumaczZnakZastępczyNaStronę"]("","",kod_jezyka_koncowy,kod_projektu_koncowy,czy_naglowek_strony); end; ---- local klasa=wiki_modul.KodyKlasStronyNaDanejWiki{["klucz projektu"]=nil,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,["strona"]=nazwa_strony_linku,["nagłówek"]=czy_naglowek_strony,["url"]=czy_url,["parametry"]=czy_parametry_strony,["aktywny"]=aktywny,}; return klasa; end; p["LinkOgólne"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local miano_przestrzeni_nazw=args["miano przestrzeni nazw"] or args["przestrzeń"] or args["m"]; local czy_dyskusja=parametry_modul.CzyTak(args["dyskusja"] or args["d"]); local klucz_projektu_do_projektu_linku=args["klucz projektu"] or args["k"]; local kod_jezyka_do_projektu_linku=args["kod języka"] or args["kj"]; local kod_projektu_do_projektu_linku=args["kod projektu"] or args["kp"]; local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]) or parametry_modul.CzyTak(args["bz"]); local wyswietl_miano_przestrzeni_nazw=args["wyświetl miano przestrzeni nazw"] or args["wyświetl"] or args["w"]; local nazwa_strony_linku=args[1] or "_"; local czy_nazwa=parametry_modul.CzyTak(args[2]); local czy_analiza=parametry_modul.CzyTak(args["analiza"]) or parametry_modul.CzyTak(args["a"]); local z_kodowaniem=parametry_modul.CzyTak(args["uri"]) or parametry_modul.CzyTak(args["u"]); local nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna; local czy_niepusta_nazwa_przestrzeni_nazw; local nazwy_modul=require("Module:Nazwy"); local czy_aktualna_wiki; if(not czy_analiza)then local tabela_nazw={}; miano_przestrzeni_nazw=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or ""; nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa(miano_przestrzeni_nazw,nazwa_strony_linku,nil,nil,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,tabela_nazw,function(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main) if(czy_dyskusja)then local tabela_nazw_temp={};tabela_nazw_temp.czy_aktualna_wiki=tabela_nazw.czy_aktualna_wiki; nowa_nazwa_strony_linku=nazwy_modul["NAZWASTRONYDYSKUSJI"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["bez zmiany adresu"]="tak",},tabela_nazw_temp); end; return nowa_nazwa_strony_linku; end); czy_aktualna_wiki=tabela_nazw.czy_aktualna_wiki; else prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil; nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku; end; local tabela_nazw={};tabela_nazw.czy_aktualna_wiki=czy_aktualna_wiki; local czy_biezaca; local czy_nazwa_strony_pusta; local wiki_modul=require("Module:Wiki"); if((czy_dyskusja)or(czy_analiza))then czy_nazwa_strony_pusta=mw.ustring.match(nazwa_strony_linku,"^[%s_:]*$"); if((not czy_nazwa_strony_pusta)or((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~="")))then if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; local nazwy_modul=require("Module:Nazwy"); if(czy_biezaca)then miano_przestrzeni_nazw=nazwy_modul[((czy_dyskusja)and(czy_analiza)) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"](nowa_nazwa_strony_linku,tabela_nazw); else miano_przestrzeni_nazw=nazwy_modul[((czy_dyskusja)and(czy_analiza)) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,},tabela_nazw); end; czy_niepusta_nazwa_przestrzeni_nazw=parametry_modul.CzyTak(miano_przestrzeni_nazw); end; elseif(hash or czy_kreska_dolna)then czy_niepusta_nazwa_przestrzeni_nazw=true; elseif(not prze_nie_main)then miano_przestrzeni_nazw=""; czy_niepusta_nazwa_przestrzeni_nazw=false; else miano_przestrzeni_nazw=prze_nie_main; czy_niepusta_nazwa_przestrzeni_nazw=true; end; local techniczne_modul=require("Module:Techniczne"); local czy_wyswietl_miano_przestrzeni_nazw=parametry_modul.CzyTak(wyswietl_miano_przestrzeni_nazw); local function NazwaLinkuDoStrony() local function CzyPrzestrzen(miano_przestrzeni_nazw) local czy_biezaca; if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; local miano_przestrzeni_nazw; if(czy_biezaca)then miano_przestrzeni_nazw=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else miano_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} or miano_przestrzeni_nazw; end; return miano_przestrzeni_nazw; end; local function Nazwa2(nazwa,czy_wyswietl_miano_przestrzeni_nazw) if(czy_wyswietl_miano_przestrzeni_nazw)then return nazwa; else nazwa=nazwy_modul["NAZWASTRONY"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,},tabela_nazw); if(tabela_nazw.m)then nazwa=mw.getContentLanguage():lcfirst(nazwa); end; return nazwa; end; end; local function Nazwa(nazwa) local ile;local ile2=0; if((czy_analiza) and (not bez_przetwarzania))then nazwa=techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](nazwa) or nazwa; nazwa,ile=mw.ustring.gsub(nazwa,"^[%s_:]*(.+)[%s_:]*:[%s_]*$",function(nazwaprzestrzeni) local nazwa_przestrzeni=CzyPrzestrzen(nazwaprzestrzeni) if(nazwa_przestrzeni)then return nazwa_przestrzeni..":".."%s"; end; ile2=ile+1; end); else nazwa,ile=mw.ustring.gsub(nazwa,"^[%s_:]*(.+)[%s_:]*:[%s_]*$",function(nazwaprzestrzeni) local nazwa_przestrzeni=CzyPrzestrzen(nazwaprzestrzeni) if(nazwa_przestrzeni)then return nowa_nazwa_strony_linku; end; ile2=ile2+1; end); end; if(ile-ile2==0)then return Nazwa2(nazwa,czy_wyswietl_miano_przestrzeni_nazw); else return nazwa; end; end; local function NazwaFormat(wyswietl_miano_przestrzeni_nazw,miano_przestrzeni_nazw,czy_nazwa_strony_pusta) if((not czy_analiza)or(bez_przetwarzania))then return nil;end; if(czy_wyswietl_miano_przestrzeni_nazw)then if(czy_nazwa_strony_pusta)then if(not miano_przestrzeni_nazw)then return "%s:%s"; else return miano_przestrzeni_nazw..((miano_przestrzeni_nazw~="") and ":" or "").."%s"; end; end; else return "%s"; end; end; if(czy_niepusta_nazwa_przestrzeni_nazw)then if(czy_wyswietl_miano_przestrzeni_nazw)then if(not czy_nazwa)then if((not czy_kreska_dolna)and(not hash))then nazwa_strony_linku=((czy_analiza) and (not bez_przetwarzania)) and techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](nazwa_strony_linku) or nazwa_strony_linku; if((czy_nazwa_strony_pusta)and(czy_analiza)and(not bez_przetwarzania))then nazwa_strony_linku="%s";end; ---- local aliases; local alias=args["alias miana przestrzeni nazw"] or args["alias"] or args["i"]; local czy_alias=parametry_modul.CzyTak(alias); if(czy_alias)then if((not czy_dyskusja)and(not czy_analiza))then local wiki_modul=require("Module:Wiki"); if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; end; if(czy_biezaca)then local uchwyt=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,uchwyt="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak"} if(uchwyt)then aliases=uchwyt.aliases; --miano_przestrzeni_nazw=uchwyt.name; end; else local uchwyt=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,uchwyt="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(uchwyt)then if(parametry_modul.TypeTable(uchwyt))then aliases=uchwyt.aliasy; --miano_przestrzeni_nazw=uchwyt[1]; else --miano_przestrzeni_nazw=uchwyt; aliases={}; end; end; end; end; ---- if((czy_alias)and(parametry_modul.CzyTak(aliases)))then if(parametry_modul["CzySąElementyNumerowaneTablicy"](aliases))then alias=mw.getContentLanguage():uc(alias); for _,value in pairs(aliases)do if((mw.getContentLanguage():uc(value))==alias)then return alias..":"..nazwa_strony_linku; end; end; end; end; if(not miano_przestrzeni_nazw)then return nil;end; local miano_przestrzeni_nazw_zmienna_tymczasowa; if(czy_biezaca)then miano_przestrzeni_nazw_zmienna_tymczasowa=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; nazwa_strony_linku=((miano_przestrzeni_nazw_zmienna_tymczasowa)and(not czy_nazwa_strony_pusta)and(not prze_nie_main)) and nazwy_modul["NAZWASTRONY"](nowa_nazwa_strony_linku,tabela_nazw) or nazwa_strony_linku; else miano_przestrzeni_nazw_zmienna_tymczasowa=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} or miano_przestrzeni_nazw; nazwa_strony_linku=((miano_przestrzeni_nazw_zmienna_tymczasowa)and(not czy_nazwa_strony_pusta)and(not prze_nie_main)) and nazwy_modul["NAZWASTRONY"]{nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,tabela_nazw} or nazwa_strony_linku; end; if(not miano_przestrzeni_nazw_zmienna_tymczasowa)then return nil;end; return ((miano_przestrzeni_nazw_zmienna_tymczasowa~="") and (miano_przestrzeni_nazw_zmienna_tymczasowa..":") or "")..((((czy_analiza)and(not bez_przetwarzania))and(nazwa_strony_linku=="")) and "%s" or nazwa_strony_linku); else local nazwa=hash and("#"..hash) or nowa_nazwa_strony_linku; nazwa=((czy_analiza) and (not bez_przetwarzania)) and techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](nazwa) or nazwa; nazwa=Nazwa(nazwa); return nazwa; end; end; else if(not czy_nazwa)then if((not czy_kreska_dolna)and(not hash))then if((czy_nazwa_strony_pusta)and((czy_analiza)and(not bez_przetwarzania)))then return "%s"; end; local nazwa=nazwa_strony_linku; nazwa=Nazwa(nazwa); return nazwa; else if((czy_nazwa_strony_pusta)and((czy_analiza)and(not bez_przetwarzania)))then return "%s"; end; local nazwy_modul=require("Module:Nazwy"); local nazwa=hash and ("#"..hash) or nazwy_modul["NAZWASTRONY"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,},tabela_nazw); nazwa=Nazwa(nazwa); return nazwa; end; end; end; else if(not czy_nazwa)then if((not czy_kreska_dolna)and(not hash))then local wynik_nazwa=NazwaFormat(czy_wyswietl_miano_przestrzeni_nazw,miano_przestrzeni_nazw,czy_nazwa_strony_pusta); if(wynik_nazwa)then return wynik_nazwa;end; local nazwa=nowa_nazwa_strony_linku; nazwa=Nazwa(nazwa); return nazwa; else if(czy_nazwa_strony_pusta)then local wynik_nazwa=NazwaFormat(czy_wyswietl_miano_przestrzeni_nazw,miano_przestrzeni_nazw,czy_nazwa_strony_pusta); if(wynik_nazwa)then return wynik_nazwa;end; end; local nazwy_modul=require("Module:Nazwy"); local nazwa=hash and("#"..hash) or nowa_nazwa_strony_linku; nazwa=Nazwa(nazwa); return nazwa; end; end; end; end; local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]) or parametry_modul.CzyTak(args["bp"]); local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]) or parametry_modul.CzyTak(args["bk"]); local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~=""))or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$")or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*#(.*)$"))))) or nil); local nazwa=czy_nazwa and (args[2] and (((czy_analiza) and (not bez_przetwarzania)) and techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](args[2]) or args[2]) or nil) or NazwaLinkuDoStrony(); local po=args["po"] or args["p"]; local za=args["za"] or args["z"]; if(not bez_przetwarzania)then return p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,hash,nazwa,za,po,false,nil,nil,nil,true,wyswietl_miano_przestrzeni_nazw,czy_dyskusja,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem); else local link=p.TworzLinkBezPrzetwarzania(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,(not czy_strona_lokalna) and nowa_nazwa_strony_linku or (hash and "" or nowa_nazwa_strony_linku),hash,nazwa,za,po,z_kodowaniem); if(not bez_znacznikow)then return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,hash or ((not czy_kreska_dolna) and mw.ustring.match(nazwa_strony_linku,"#") or nil),nil,nil); else return link; end; end; end; function p.ZamianaKategoriiNaLinki(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr("tekst") or PobierzParametr(1); local techniczne_modul=require("Module:Techniczne"); local nazwy_np_modul=wm.loadData("Module:Nazwy/Np"); local kategoria_polska=nazwy_np_modul.Category; local wzor_kategorii_polskiej=techniczne_modul["WzórDanejPrzestrzeniNazw"](kategoria_polska) tekst=mw.ustring.gsub(tekst,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|%[%]]+)%s*|%s*([^%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%2]]"); tekst=mw.ustring.gsub(tekst,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1]]"); tekst=mw.ustring.gsub(tekst,"%[%[%s*"..wzor_kategorii_polskiej.."%s*:%s*([^|%[%]]+)%s*|%s*([^%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%2]]"); tekst=mw.ustring.gsub(tekst,"%[%[%s*"..wzor_kategorii_polskiej.."%s*:%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1]]"); return tekst; end; return p; ac57dnzzmxhmjbohx3xh5cz29eeqt40 539993 539973 2026-04-17T20:23:10Z Persino 2851 539993 Scribunto text/plain local p={}; p["PrzetłumaczZnakZastępczyNaStronę"]=function(nazwa_przestrzeni_nazw,nazwa_strony,kod_jezyka,kod_projektu,hash) local czy_pusta_nazwa_przestrzeni_nazw=mw.ustring.match(nazwa_przestrzeni_nazw,"^([%s_:]*)$"); local czy_pusta_nazwa_strony=mw.ustring.match(nazwa_strony,"^([%s_:]*)#.*$") or mw.ustring.match(nazwa_strony,"^([%s_:]*)$"); if(not czy_pusta_nazwa_przestrzeni_nazw and czy_pusta_nazwa_strony)then local tabglownestronyprojektu=mw.loadData("Module:Nazwy/przestrzenie").tabnp; local parametry_modul=require("Module:Parametry"); nazwa_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_przestrzeni_nazw); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(not czy_biezaca)then local nazwy_modul=require("Module:Nazwy"); local wiki_modul=require("Module:Wiki"); local nazwa_kanoniczna_nazwy_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["przedmiotowa"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} local nazwa_bazowa_strony=tabglownestronyprojektu[nazwa_kanoniczna_nazwy_przestrzeni_nazw]; if(nazwa_bazowa_strony)then local nazwa_strony_na_innym_projekcie=wiki_modul.WikidaneOdpowiednikStrony{ ["nazwa strony"]=nazwa_bazowa_strony, ["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu, ["kod języka bazy"]="pl", ["kod projektu bazy"]=(nazwa_kanoniczna_nazwy_przestrzeni_nazw~="Project")and "w" or "b", } if(nazwa_strony_na_innym_projekcie)then local nazwa_strony=nazwy_modul["NAZWASTRONY"]({["nazwa"]=nazwa_strony_na_innym_projekcie,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu}); return ((nazwa_przestrzeni_nazw~="")and (nazwa_przestrzeni_nazw..":") or "")..nazwa_strony,false; else return nazwa_bazowa_strony,false; end; end; else local nazwy_modul=require("Module:Nazwy"); if(hash)then local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={}; local prze_bierzacej_strony=nazwy_modul["NAZWAPRZESTRZENI"](nil,tabela_nazw); local nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,}; if(nazwa_przestrzeni_nazw==prze_bierzacej_strony)then return nazwy_modul["PEŁNANAZWASTRONY"](nil,tabela_nazw),true; end; end; local nazwy_modul=require("Module:Nazwy"); local nazwa_kanoniczna_nazwy_przestrzeni_nazw=nazwy_modul.Np{["nazwa"]=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["przedmiotowa"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak"} local nazwa_strony_glownych_stron_projektu=tabglownestronyprojektu[nazwa_kanoniczna_nazwy_przestrzeni_nazw]; if(nazwa_strony_glownych_stron_projektu)then local nazwa_strony=nazwy_modul["NAZWASTRONY"]({["nazwa"]=nazwa_strony_glownych_stron_projektu}); return ((nazwa_przestrzeni_nazw~="")and (nazwa_przestrzeni_nazw..":") or "")..nazwa_strony,false; end; end; elseif czy_pusta_nazwa_przestrzeni_nazw and czy_pusta_nazwa_strony then local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} if((czy_biezaca)and(hash))then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"](),true; end; local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local tablokalnesiostrzane=wiki_interwiki_modul.tablica_lokalne_siostrzane; if(tablokalnesiostrzane[kod_projektu])then local wiki_modul=require("Module:Wiki"); local pudelko_modul=require("Module:Pudełko"); local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"](); if(not czy_biezaca)then local nazwa_strony_glownej_na_innym_projekcie=wiki_modul.WikidaneOdpowiednikStrony{ ["nazwa strony"]=strona_glowna_tego_projektu, ["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu, } if(nazwa_strony_glownej_na_innym_projekcie)then return nazwa_strony_glownej_na_innym_projekcie,false; end; else return strona_glowna_tego_projektu,false; end; end; end; return ((nazwa_przestrzeni_nazw~="")and (nazwa_przestrzeni_nazw..":") or "")..nazwa_strony,false; end; p["PoprawLinki"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_pierwszy=PobierzParametr(1); local z_kodowaniem=PobierzParametr("uri") or PobierzParametr(2); z_kodowaniem=parametry_modul.CzyTak(z_kodowaniem); local function pojedynczy_link(link) local strona=mw.ustring.match(link,"^%[%[:?([^%[%]|]*)"); local nazwa=mw.ustring.match(link,"^%[%[[^|]*|([^%[%]]*)%]%]$") or strona; local z_kodowaniem_temp=(mw.ustring.match(strona,"%%%x%x")and true or false) or z_kodowaniem; link=p.TworzenieWikiLinku(nil,nil,nil,strona,nil,nazwa,nil,nil,false,nil,nil,nil,nil,nil,nil,nil,z_kodowaniem_temp); return link; end; return mw.ustring.gsub(argument_pierwszy,"(%[%[[^%[%]]*%]%])",function(s)return pojedynczy_link(s);end); end; p["WydobądźLinki"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local wartosc,_=PobierzParametr(1); local z_kodowaniem=PobierzParametr("uri") or PobierzParametr(2); local specjalne_modul=require("Module:Specjalne"); wartosc=specjalne_modul["UsuńKomentarze"](wartosc); wartosc=specjalne_modul["UsuńSzablonyStylów"](wartosc); wartosc=specjalne_modul["UsuńZnaczniki"](wartosc); wartosc=specjalne_modul["UsuńKategorie"](wartosc); wartosc=specjalne_modul["UsuńWywołaniaPlików"](wartosc); wartosc=specjalne_modul["UsuńInterwiki"](wartosc); local linki_modul=require("Module:Linki"); wartosc=linki_modul["PoprawLinki"]{wartosc,z_kodowaniem}; return wartosc; end; function p.TworzenieWikiLinku(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow,z_kodowaniem) if(not czy_url)then local parametry_modul=require("Module:Parametry"); local czy_klucz_projektu_do_projektu_linku=parametry_modul.CzyTak(klucz_projektu_do_projektu_linku); local czy_kod_jezyka_do_projektu_linku=parametry_modul.CzyTak(kod_jezyka_do_projektu_linku); local czy_kod_projektu_do_projektu_linku=parametry_modul.CzyTak(kod_projektu_do_projektu_linku); local czy_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku); local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa); local czy_po=parametry_modul.CzyTak(po); if(not czy_naglowek_strony)then if(czy_nazwa_strony_linku)then local html_modul=require("Module:Html"); local tabela_nazw_adresu={}; local strona_zmienna_tymczasowa=html_modul["NazwaStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu) local naglowek_zmienna_tymczasowa=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); if(strona_zmienna_tymczasowa and naglowek_zmienna_tymczasowa)then nazwa_strony_linku=strona_zmienna_tymczasowa; naglowek_zmienna_tymczasowa=parametry_modul["Odstępy"]{[1]=naglowek_zmienna_tymczasowa,[2]="tak",[3]="tak",}; if(parametry_modul.CzyTak(naglowek_zmienna_tymczasowa))then naglowek_strony=naglowek_zmienna_tymczasowa; czy_naglowek_strony=true; end; end; end; else naglowek_strony=parametry_modul["Odstępy"]{[1]=naglowek_strony,[2]="tak",[3]="tak",}; if(not parametry_modul.CzyTak(naglowek_strony))then czy_naglowek_strony=false; naglowek_strony=nil; end; end; --- local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local interwikimap=wiki_interwiki_modul.interwikimap; local interwikisiostrzaneangielskie=wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie; local wiki_modul=require("Module:Wiki"); local kod_jezyka_uzyskany_poczatkowy,kod_projektu_uzyskany_poczatkowy=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku); local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); if(not kod_jezyka_uzyskany_poczatkowy or not kod_projektu_uzyskany_poczatkowy)then kod_jezyka_uzyskany_poczatkowy=kod_jezyka_uzyskany_poczatkowy or kod_jezyka_tego_projektu; kod_projektu_uzyskany_poczatkowy=kod_projektu_uzyskany_poczatkowy or kod_projektu_tego_projektu; end; local czy_pelna_nazwa_strony_prawidlowa=parametry_modul["CzyTakCiąg"](nazwa_strony_linku) and not mw.ustring.match(nazwa_strony_linku,"^[%s_:]+$") or nil; local tablica_kodow={}; local kod_jezyka_koncowy;local kod_projektu_koncowy; --------------------------------------------------------------------- kod_jezyka_koncowy=kod_jezyka_uzyskany_poczatkowy; kod_projektu_koncowy=kod_projektu_uzyskany_poczatkowy; --------------------------------------------------------------------- local kod_jezyka_poczatkowy,kod_projektu_poczatkowy; if(czy_pelna_nazwa_strony_prawidlowa)then nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy,kod_jezyka_poczatkowy,kod_projektu_poczatkowy=wiki_modul.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy,bez_przetwarzania_kodow and tablica_kodow or nil); czy_pelna_nazwa_strony_prawidlowa=parametry_modul["CzyTakCiąg"](nazwa_strony_linku) and not mw.ustring.match(nazwa_strony_linku,"^[%s_:]+$") or nil; end; ---- if(not nazwa)then nazwa=nazwa_strony_linku..(czy_naglowek_strony and ("#"..naglowek_strony) or ""); nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," "); czy_nazwa=parametry_modul.CzyTak(nazwa); end local ciag_tablica_kodow=""; if(bez_przetwarzania_kodow)then if(kod_jezyka_poczatkowy)then if((kod_jezyka_uzyskany_poczatkowy==kod_jezyka_tego_projektu)and(kod_projektu_uzyskany_poczatkowy==kod_projektu_tego_projektu))then kod_jezyka_uzyskany_poczatkowy=kod_jezyka_poczatkowy; else ciag_tablica_kodow=kod_jezyka_poczatkowy; end; elseif(kod_projektu_poczatkowy)then if((kod_jezyka_uzyskany_poczatkowy==kod_jezyka_tego_projektu)and(kod_projektu_uzyskany_poczatkowy==kod_projektu_tego_projektu))then kod_projektu_uzyskany_poczatkowy=kod_projektu_poczatkowy; else ciag_tablica_kodow=kod_projektu_poczatkowy; end; end; local ciag_tablica_kodow_zmienna_tymczasowa=table.concat(tablica_kodow,":"); ciag_tablica_kodow=ciag_tablica_kodow..(((ciag_tablica_kodow~="")and(ciag_tablica_kodow_zmienna_tymczasowa~=""))and ":" or "")..ciag_tablica_kodow_zmienna_tymczasowa; else kod_jezyka_uzyskany_poczatkowy=kod_jezyka_koncowy; kod_projektu_uzyskany_poczatkowy=kod_projektu_koncowy; end; local nazwy_modul=require("Module:Nazwy"); local czy_dyskusja=parametry_modul.CzyTak(dyskusja); local pierwsza_litera=((czy_pelna_nazwa_strony_prawidlowa)and(not czy_dyskusja)) and mw.ustring.match(nazwa_strony_linku,"^(%a)") or nil; local tabela_nazw={}; local nazwaprzestrzeni=czy_pelna_nazwa_strony_prawidlowa and ((not czy_dyskusja)and nazwy_modul["NAZWAPRZESTRZENI"]({[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy},tabela_nazw) or nazwy_modul["PRZESTRZEŃDYSKUSJI"]({[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw)) or ""; local nazwastrony=czy_pelna_nazwa_strony_prawidlowa and nazwy_modul["NAZWASTRONY"]({[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw) or ""; local linki_modul=require("Module:Linki"); local strona_inna_zmienna_tymczasowa,czy_strona_lokalna=linki_modul["PrzetłumaczZnakZastępczyNaStronę"](nazwaprzestrzeni,nazwastrony,kod_jezyka_koncowy,kod_projektu_koncowy,czy_naglowek_strony); local czy_pelna_nazwa_strony_prawidlowa=((czy_pelna_nazwa_strony_prawidlowa)and(parametry_modul["CzyTakCiąg"](strona_inna_zmienna_tymczasowa) and not mw.ustring.match(strona_inna_zmienna_tymczasowa,"^[%s_:]+$")) or strona_inna_zmienna_tymczasowa); local function TabelaNazw()tabela_nazw_temp={};tabela_nazw_temp.czy_aktualna_wiki=tabela_nazw.czy_aktualna_wiki;return tabela_nazw_temp;end; if(nazwastrony=="")then local tabela_nazw=TabelaNazw(); local nazwa_strony=nazwy_modul["NAZWASTRONY"]({[1]=strona_inna_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw) local techniczne_modul=require("Module:Techniczne"); local nowa_nazwa_strony=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](nazwa_strony); if(nazwa)then local f,ile=mw.ustring.gsub(nazwa,"%%s",function()return nil;end); if(ile==1)then nazwa=mw.ustring.format(nazwa,nowa_nazwa_strony) or nil; elseif(ile==2)then local nowa_nazwa_przestrzeni=nazwy_modul[(czy_dyskusja) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"]({[1]=strona_inna_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw); if(tabela_nazw.czy_aktualna_wiki)then nowa_nazwa_przestrzeni=nazwy_modul.Np{nazwa=nowa_nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nowa_nazwa_przestrzeni=nazwy_modul.NpDane{nazwa=nowa_nazwa_przestrzeni,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} or nowa_nazwa_przestrzeni; end; nazwa=mw.ustring.format(nazwa,nowa_nazwa_przestrzeni,nowa_nazwa_strony) or nil; end; end; end; strona_inna_zmienna_tymczasowa=strona_inna_zmienna_tymczasowa or nazwa_strony_linku; local function NazwaStronyDyskusji(strona) if(czy_dyskusja and czy_pelna_nazwa_strony_prawidlowa)then return nazwy_modul["NAZWASTRONYDYSKUSJI"]({[1]=strona,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},TabelaNazw()); end; return strona; end; local strona_zmienna_tymczasowa=NazwaStronyDyskusji(strona_inna_zmienna_tymczasowa); nazwa_strony_linku=((not czy_strona_lokalna or ((czy_dyskusja)and(nazwy_modul["NAZWAPRZESTRZENI"]({[1]=strona_inna_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},TabelaNazw())~=nazwy_modul["NAZWAPRZESTRZENI"]({[1]=strona_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},TabelaNazw()))))and strona_zmienna_tymczasowa or ""); nazwa_strony_linku=pierwsza_litera and mw.ustring.gsub(nazwa_strony_linku,"^["..mw.getContentLanguage():ucfirst(pierwsza_litera)..mw.getContentLanguage():lcfirst(pierwsza_litera).."]",pierwsza_litera) or nazwa_strony_linku; czy_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku); local function BiezacaWikiDwukropek() local czy_biezace_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; local czy_wstawiac_dwukropek; if(czy_biezace_wiki)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwaprzestrzeni==nazwy_np_modul.Category)or(nazwaprzestrzeni==nazwy_np_modul.File))then czy_wstawiac_dwukropek=true; end; end; return czy_wstawiac_dwukropek; end; local pudelko_modul=require("Module:Pudełko"); local jezykowe_projekty=wiki_interwiki_modul.tablica_lokalne_lingwistyczne_siostrzane; local projekty_nie_en=jezykowe_projekty[kod_projektu_uzyskany_poczatkowy]; local czy_kod_jezyka_uzyskany_poczatkowy=(kod_jezyka_uzyskany_poczatkowy~=kod_jezyka_tego_projektu); local czy_kod_projektu_uzyskany_poczatkowy=(kod_projektu_uzyskany_poczatkowy~=kod_projektu_tego_projektu); local html_modul=require("Module:Html"); local function AdresLinku() local kody_poczatkowe=(not projekty_nie_en and (czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or "") or(czy_kod_jezyka_uzyskany_poczatkowy and kod_jezyka_uzyskany_poczatkowy..":"..(czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or "") or (czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or ""))); local tablica_kodow=kody_poczatkowe..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or ""); local czy_wstawiac_dwukropek=((tablica_kodow~="")and (projekty_nie_en and (czy_kod_jezyka_uzyskany_poczatkowy and ":" or "") or "") or (BiezacaWikiDwukropek() and ":" or "")); local strona;local parametry;local naglowek; if(czy_nazwa_strony_linku)then strona=html_modul.EncodeElementyAdresuStrony(nazwa_strony_linku,nil,z_kodowaniem); end; if(czy_parametry_strony)then parametry=html_modul.EncodeElementyAdresuStrony(parametry_strony,true,z_kodowaniem); parametry="?"..parametry; end; if(czy_naglowek_strony)then naglowek=html_modul.EncodeElementyAdresuStrony(naglowek_strony,nil,z_kodowaniem); naglowek="#"..naglowek; end; local zmienna_linkowa=tablica_kodow..(strona or "") ..(parametry or "")..(naglowek or ""); return zmienna_linkowa, czy_wstawiac_dwukropek; end; nazwa=nazwa and mw.ustring.gsub(nazwa,"^[%s_]*","") or nil; nazwa=nazwa and mw.ustring.gsub(nazwa,"[%s_]*$","") or nil; --nazwa=nazwa and mw.ustring.gsub(nazwa,"[%s_]+"," ") or nil; if(czy_ogolne and not czy_nazwa)then if(parametry_modul.CzyTak(wyswietl))then nazwa=strona_zmienna_tymczasowa; czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa); else if((czy_pelna_nazwa_strony_prawidlowa)and(nazwastrony~=""))then nazwa=nazwastrony; else nazwa=nazwy_modul["NAZWASTRONY"]{[1]=strona_zmienna_tymczasowa,["kod języka"]=kod_jezyka_uzyskany_poczatkowy,["kod projektu"]=kod_projektu_uzyskany_poczatkowy,}; end; czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa); end end; local zmienna_linkowa; local aktywny; if(not czy_wewnetrzny_z_fullurl)then local czy_wstawiac_dwukropek; zmienna_linkowa,czy_wstawiac_dwukropek=AdresLinku(); zmienna_linkowa=mw.ustring.gsub(zmienna_linkowa,"[%s_]+"," "); local czy_za=parametry_modul.CzyTak(za); if(czy_za or(nazwa and (nazwa~=zmienna_linkowa)))then zmienna_linkowa="[["..czy_wstawiac_dwukropek..zmienna_linkowa..(czy_nazwa and "|"..nazwa..(czy_za and za or "") or (czy_za and ("|"..zmienna_linkowa..za) or "")).."]]"..(czy_po and po or ""); else zmienna_linkowa="[["..czy_wstawiac_dwukropek..zmienna_linkowa.."]]"..(czy_po and po or ""); end aktywny=false; else aktywny=true; local serwer; local projekt; if(projekty_nie_en)then for kod_specjalny_projektu,kod_projektu_interwiki in pairs(wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie)do if(kod_projektu_uzyskany_poczatkowy==kod_projektu_interwiki)then projekt=kod_specjalny_projektu; end; end; end; local function Protocol(kod_projektu) local interwikimap=wiki_interwiki_modul.interwikimap; local url=interwikimap[kod_projektu]; if(not url)then return "";end; return mw.ustring.match(url,"^([^/]*)//"); end; local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local nazwy_np_modul=require("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); local czy_specjalna=(nazwaprzestrzeni==nazwy_np_modul.Special); local ciag_tablica_kodow_zmienna_tymczasowa=mw.ustring.gsub(strona_zmienna_tymczasowa,"[%s_]+","_"); if(((projekt)and(czy_parametry_strony)and(czy_specjalna))or((projekt)and(wersja_linku=="w")))then local adres=Protocol(kod_projektu_uzyskany_poczatkowy).."//"..kod_jezyka_uzyskany_poczatkowy.."."..projekt..".org/w/index.php?title="..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and "&"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za)and (" "..adres..za) or "")).."]"..(czy_po and po or ""); elseif(((not projekty_nie_en)and(czy_parametry_strony)and(czy_specjalna))or((not projekty_nie_en)and(wersja_linku=="w")))then local techniczne_modul=require("Module:Techniczne"); local wiki_nie_jezykowe=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane[kod_projektu_uzyskany_poczatkowy]; local serwer=mw.ustring.match(wiki_nie_jezykowe,"^([^/]*//[^/]*)") local adres=serwer.."/w/index.php?title="..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and "&"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za)and (" "..adres..za) or "")).."]"..(czy_po and po or ""); elseif(((projekt)and(czy_parametry_strony))or((projekt)and(wersja_linku=="wiki")))then local strona_zmienna_tymczasowa,_=mw.ustring.gsub(strona_zmienna_tymczasowa,"[_%s]+","_"); local adres=Protocol(kod_projektu_uzyskany_poczatkowy).."//"..kod_jezyka_uzyskany_poczatkowy.."."..projekt..".org/wiki/"..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and " "..nazwa..(parametry_modul.CzyTak(za) and za or "") or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); elseif(((not projekty_nie_en)and(czy_parametry_strony))or((not projekty_nie_en)and(wersja_linku=="wiki")))then local wiki_nie_jezykowe=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane[kod_projektu_uzyskany_poczatkowy]; local strona_zmienna_tymczasowa,_=mw.ustring.gsub(ciag_tablica_kodow_zmienna_tymczasowa,"[_%s]+","_"); strona_zmienna_tymczasowa=((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..strona_zmienna_tymczasowa; strona_zmienna_tymczasowa=html_modul.EncodeHtml(strona_zmienna_tymczasowa); strona_zmienna_tymczasowa,_=mw.ustring.gsub(strona_zmienna_tymczasowa,"([%%])(%d+)","%%%%%2"); strona_zmienna_tymczasowa,_=mw.ustring.gsub(wiki_nie_jezykowe,"$1",strona_zmienna_tymczasowa); local adres=strona_zmienna_tymczasowa..(czy_parametry_strony and "?"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); else local pudelko_modul=require("Module:Pudełko"); zmienna_linkowa=(parametry_modul.CzyTak(klucz_projektu)and ((not(klucz_projektu==pudelko_modul["Klucz projektu tego projektu"]()))and (klucz_projektu..":")or "" ) or ((parametry_modul.CzyTak(kod_jezyka_uzyskany_poczatkowy)and ((not(kod_jezyka_uzyskany_poczatkowy==pudelko_modul["Kod języka tego projektu"]()))and(kod_jezyka_uzyskany_poczatkowy..":")or "") or "")..(parametry_modul.CzyTak(kod_projektu_uzyskany_poczatkowy)and ((not(kod_projektu_uzyskany_poczatkowy==pudelko_modul["Kod projektu tego projektu"]()))and(kod_projektu_uzyskany_poczatkowy..":")or "") or ""))) ..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..strona_zmienna_tymczasowa; local strona=(czy_parametry_strony and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or ""); local adres=tostring(mw.uri.fullUrl(zmienna_linkowa))..strona; zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); end; end; return zmienna_linkowa,kod_jezyka_koncowy,kod_projektu_koncowy,strona_zmienna_tymczasowa,czy_naglowek_strony,aktywny; else local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local czy_nazwa; if(not nazwa)then nazwa=mw.ustring.match(nazwa_strony_linku,"//[^/]*/(.*)$"); nazwa=html_modul.DecodeHtml(nazwa); czy_nazwa=parametry_modul.CzyTak(nazwa); else czy_nazwa=parametry_modul.CzyTak(nazwa); end; local czy_po=parametry_modul.CzyTak(po); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); nazwa_strony_linku=mw.ustring.gsub(nazwa_strony_linku,"[%s_]+","_"); nazwa_strony_linku=mw.ustring.gsub(nazwa_strony_linku,"//([^/]*)/(.*)$", function(s1,s2)return "//"..s1.."/"..html_modul.EncodeHtml(s2);end) local adres=nazwa_strony_linku..(czy_parametry_strony and "?"..html_modul.EncodeParametryHtml(parametry_strony) or "") ..(czy_naglowek_strony and "#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony)) or ""); local zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or ""); return zmienna_linkowa,nil,nil,nazwa_strony_linku,czy_naglowek_strony,false; end; end; function p.TworzLinkBezPrzetwarzania(klucz_projektu,kod_jezyka,kod_projektu,strona,naglowek,nazwa,za,po,z_kodowaniem) local parametry_modul=require("Module:Parametry"); local adres=(parametry_modul.CzyTak(klucz_projektu)and (klucz_projektu..":") or ((parametry_modul.CzyTak(kod_jezyka)and (kod_jezyka..":") or "")..(parametry_modul.CzyTak(kod_projektu)and (kod_projektu..":") or ""))) ..strona..(parametry_modul.CzyTak(naglowek) and ("#"..naglowek) or ""); local html_modul=require("Module:Html"); adres=html_modul.AdresProjektuEncodeHtml(adres,z_kodowaniem); local wartosc="[[:"..adres..(parametry_modul.CzyTak(nazwa) and ("|"..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and ("|"..adres..za) or "")).."]]"..(po and po or ""); return wartosc; end; function p.LinkWikidane(link,klucz_projektu,kod_jezyka,kod_projektu,strona,czy_naglowek,czy_url,czy_parametry,aktywny) local wiki_modul=require("Module:Wiki"); local klasa=wiki_modul.KodyKlasStronyNaDanejWiki{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona,["nagłówek"]=czy_naglowek,["url"]=czy_url,["parametry"]=czy_parametry,["aktywny"]=aktywny,}; local nazwy_modul=require("Module:Nazwy"); local spanramka=mw.html.create('span'); spanramka:addClass(klasa); spanramka:addClass("link"); spanramka:wikitext(link); return tostring(spanramka:allDone()); end; function p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem) local parametry_modul=require("Module:Parametry"); parametry_strony=czy_wewnetrzny_z_fullurl and parametry_strony or nil; local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local html_modul=require("Module:Html"); nazwa_strony_linku=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_strony_linku); local wartosc_parent,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,czy_naglowek_strony,aktywny=p.TworzenieWikiLinku(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow,z_kodowaniem); if(parametry_modul.CzyTak(bez_znacznikow))then return wartosc_parent;end; return p.LinkWikidane(wartosc_parent,nil,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,czy_naglowek_strony,czy_url,czy_parametry_strony,aktywny); end; function p.RozwinKreskaPoziomowa(miano_przestrzeni_nazw,nazwa_strony_linku,naglowek,czy_link_url,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,tabela_nazw,__FUNKCJA) local nowa_nazwa_strony_linku; local czy_kreska_dolna;local hash;local prze_nie_main; local czy_strona_lokalna; if(not czy_analiza)then czy_kreska_dolna=mw.ustring.match(nazwa_strony_linku,"^[%s_:]*$") or mw.ustring.match(nazwa_strony_linku,":[%s_]*$"); hash=(not czy_kreska_dolna)and ((not czy_link_url) and mw.ustring.match(nazwa_strony_linku,"^[_%s]*#(.*)$") or nil) or (((czy_kreska_dolna)and(czy_link_url) and require("Module:Parametry").CzyTak(naglowek)) and naglowek or nil); if((czy_kreska_dolna)or(hash))then local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku); local miano_przestrzeni_nazw_maly=((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~=""))and mw.ustring.lower(miano_przestrzeni_nazw) or miano_przestrzeni_nazw; if((not miano_przestrzeni_nazw_maly)or((miano_przestrzeni_nazw_maly=="")or(miano_przestrzeni_nazw_maly=="(main)")or(miano_przestrzeni_nazw_maly=="(główna)")))then miano_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"]({nazwa=nazwa_strony_linku,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw); end; local nazwa_strony=nazwy_modul["NAZWASTRONY"]({nazwa=nazwa_strony_linku,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw); if(nazwa_strony=="")then nowa_nazwa_strony_linku,czy_strona_lokalna=p["PrzetłumaczZnakZastępczyNaStronę"](miano_przestrzeni_nazw or "","",kod_jezyka,kod_projektu,hash); else nowa_nazwa_strony_linku=nazwa_strony_linku; end; else prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil; nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku; end; else prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil; nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku; end; nowa_nazwa_strony_linku=__FUNKCJA(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main); return nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna; end; p["GanerujSkładoweURL"] = function(args) local klucz_projektu_do_projektu_linku; local kod_jezyka_do_projektu_linku; local kod_projektu_do_projektu_linku; local miano_przestrzeni_nazw; local nazwa_strony_linku=args["strona"] or args["s"] or "_"; local html_modul=require("Module:Html"); nazwa_strony_linku=nazwa_strony_linku and html_modul.DecodeHtml(nazwa_strony_linku) or nil; local parametry_modul=require("Module:Parametry"); local w=args["wersja linku"] or args["w"]; local tab_w={ ["w"]=true, ["wiki"]=true, }; local wersja_linku=parametry_modul.CzyTak(w) and (tab_w[w] and w or nil) or ""; local _; local strony_modul=require("Module:Strony"); local czy_url=strony_modul.SprawdzanieURL(nazwa_strony_linku); local parametry_strony;local naglowek_strony;local nazwa;local po;local po;local za; nazwa=args["nazwa"] or args["n"]; po=args["po"] or args["p"]; za=args["za"] or args["z"]; local function DaneStrony(nazwa_strony_linku_parametr,adres) if(parametry_modul.CzyTak(nazwa_strony_linku_parametr))then if(mw.ustring.match(nazwa_strony_linku_parametr,"^/wiki/"))then nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/wiki/",""); local tabela_nazw_adresu={}; naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); elseif(mw.ustring.match(nazwa_strony_linku_parametr,"^/w/"))then nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/w/",""); local tabela_nazw_adresu={}; local html_modul=require("Module:Html"); naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); local nazwa_strony_jednostki,parametry_strony_jednostki=html_modul["NazwaStronyZParametrówStronyAdresu"](parametry_strony,true); parametry_strony=parametry_strony_jednostki or parametry_strony; nazwa_strony_linku_parametr=nazwa_strony_jednostki or nazwa_strony_linku_parametr; else nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/(.*)$","%1"); local tabela_nazw_adresu={}; local html_modul=require("Module:Html"); naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true,tabela_nazw_adresu); end; else if((parametry_modul.CzyTak(kod_jezyka_do_projektu_linku))or(parametry_modul.CzyTak(kod_projektu_do_projektu_linku)))then if((not adres)or(mw.ustring.match(adres,"/$1$")))then local pudelko_modul=require("Module:Pudełko"); nazwa_strony_linku_parametr=pudelko_modul["Nazwa strony głównej projektu 2"]{[1]=kod_jezyka_do_projektu_linku,[2]=kod_projektu_do_projektu_linku,} or ""; end; end; end; parametry_strony=parametry_modul.CzyTak(parametry_strony) and parametry_strony or (args["parametry"] or args["c"]); naglowek_strony=parametry_modul.CzyTak(naglowek_strony) and naglowek_strony or (args["nagłówek"] or args["g"]); --nazwa=args["nazwa"] or args["n"]; local klucz_projektu_do_projektu_linku_temp=args["klucz projektu"] or args["k"]; klucz_projektu_do_projektu_linku=parametry_modul.CzyTak(klucz_projektu_do_projektu_linku_temp) and (klucz_projektu_do_projektu_linku_temp) or klucz_projektu_do_projektu_linku; local kod_jezyka_do_projektu_linku_temp=args["kod języka"] or args["kj"]; kod_jezyka_do_projektu_linku=parametry_modul.CzyTak(kod_jezyka_do_projektu_linku_temp) and (kod_jezyka_do_projektu_linku_temp) or kod_jezyka_do_projektu_linku; local kod_projektu_do_projektu_linku_temp=args["kod projektu"] or args["kp"]; kod_projektu_do_projektu_linku=parametry_modul.CzyTak(kod_projektu_do_projektu_linku_temp) and (kod_projektu_do_projektu_linku_temp) or kod_projektu_do_projektu_linku; nazwa_strony_linku=nazwa_strony_linku_parametr; czy_url=false; end; if(not czy_url)then local miano_przestrzeni_nazw=args["miano przestrzeni nazw"] or args["przestrzeń"] or args["f"]; nazwa_strony_linku=parametry_modul["CzyTakCiąg"](miano_przestrzeni_nazw) and miano_przestrzeni_nazw..":"..nazwa_strony_linku or nazwa_strony_linku; DaneStrony(nazwa_strony_linku); else local html_modul=require("Module:Html"); local nazwa_strony_bez_protokolu=html_modul["UrlBezProtokołu"](nazwa_strony_linku); local serwer,nazwa_strony=html_modul["URLStrona"](nazwa_strony_bez_protokolu); local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local function SerwerWiki(serwer) local kod_jezyka_zmienna_tymczasowa,kod_specjalny_projektu=mw.ustring.match(serwer,"^(%w+)%.(%w+)%.org"); if((not kod_jezyka_zmienna_tymczasowa)or(not kod_specjalny_projektu))then kod_jezyka_zmienna_tymczasowa,kod_specjalny_projektu=mw.ustring.match(serwer,"^(%w+)%.[mM]%.(%w+)%.org"); end; local interwikisiostrzaneangielskie=wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie; local kod_projektu=interwikisiostrzaneangielskie[kod_specjalny_projektu]; local kod_jezyka=kod_jezyka_zmienna_tymczasowa and (mw.language.isKnownLanguageTag(kod_jezyka_zmienna_tymczasowa) and kod_jezyka_zmienna_tymczasowa or nil) or nil; return kod_jezyka,kod_projektu; end; local function JezykoweLubAngielskieProjekty(serwer_portalu) local kod_jezyka,kod_projektu=SerwerWiki(serwer_portalu); if(kod_jezyka and kod_projektu)then kod_jezyka_do_projektu_linku=kod_jezyka; kod_projektu_do_projektu_linku=kod_projektu; klucz_projektu_do_projektu_linku=nil; DaneStrony(nazwa_strony); return true; else local pozajezykoweprojektysiostrzane=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane; local techniczne_modul=require("Module:Techniczne"); for kod, url in pairs(pozajezykoweprojektysiostrzane)do local adres=html_modul["UrlBezProtokołu"](url); local serwer_portalu,nazwa_strony_portalu=html_modul["URLStrona"](adres); if(serwer_portalu)then if((serwer_portalu==serwer)and((mw.ustring.match(nazwa_strony_portalu,"%$1"))or(nazwa_strony==nazwa_strony_portalu)))then kod_jezyka_do_projektu_linku=kod_jezyka or "en"; kod_projektu_do_projektu_linku=--[[kod_projektu or]] kod; local nazwa_strony_spreparowana=nil; if(not mw.ustring.match(adres,"/wiki/%$1$"))then if(mw.ustring.match(url,"[:/]$1$"))then local url_wzor=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](adres); url_wzor=mw.ustring.gsub(url_wzor,"(%%$1)$","(.-)"); nazwa_strony_spreparowana=mw.ustring.match(nazwa_strony_bez_protokolu,"^"..url_wzor.."$"); if(not nazwa_strony_spreparowana)then return false; end; end; end; DaneStrony(nazwa_strony_spreparowana or nazwa_strony,adres); return true; end; end; end; end; end; local function __FUNKCJA() if(mw.ustring.match(serwer,"^upload%.wikimedia%.org$"))then DaneStrony(nazwa_strony); nazwa_strony=nazwa_strony_linku; nazwa_strony_linku="Media:"..mw.ustring.match(nazwa_strony,"([^/]*)$"); local kod_projektu_do_projektu_linku2,kod_jezyka_do_projektu_linku2=mw.ustring.match(nazwa_strony,"^([^/]*)/([^/]*)/.*$"); kod_jezyka_do_projektu_linku=kod_jezyka_do_projektu_linku or kod_jezyka_do_projektu_linku2; kod_projektu_do_projektu_linku=kod_projektu_do_projektu_linku or kod_projektu_do_projektu_linku2; czy_url=false; else local juz_tak=JezykoweLubAngielskieProjekty(serwer); if(not juz_tak)then local html_modul=require("Module:Html"); local tabela_nazw_adresu={}; naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); naglowek_strony=parametry_modul.CzyTak(naglowek_strony) and naglowek_strony or (args["nagłówek"] or args["g"]); parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); parametry_strony=parametry_modul.CzyTak(parametry_strony) and parametry_strony or (args["parametry"] or args["c"]); nazwa_strony_linku=html_modul["NazwaStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu); end; end; end; __FUNKCJA(); end; local czy_wewnetrzny_z_fullurl; if(not parametry_modul.CzyTak(parametry_strony))then if(wersja_linku=="")then if((klucz_projektu_do_projektu_linku)or(kod_jezyka_do_projektu_linku)or(kod_projektu_do_projektu_linku))then czy_wewnetrzny_z_fullurl=false; elseif(not czy_url)then czy_wewnetrzny_z_fullurl=false; else czy_wewnetrzny_z_fullurl=true; end; else czy_wewnetrzny_z_fullurl=true; end; else czy_wewnetrzny_z_fullurl=true; end; return klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url; end; p["Link wewnętrzny"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local klucz_projektu_do_projektu_linku=args["klucz projektu"]; local kod_jezyka_do_projektu_linku=args["kod języka"]; local kod_projektu_do_projektu_linku=args["kod projektu"]; local nazwa_strony_linku=args["strona"] or "_"; local nazwa=args["nazwa"]; local czy_nazwa=parametry_modul.CzyTak(nazwa); nazwa=czy_nazwa and nazwa or nil; local po=args["po"]; local za=args["za"]; local naglowek_strony=args["nagłówek"]; local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]); local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]); local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]); local z_kodowaniem=parametry_modul.CzyTak(args["uri"]); local czy_analiza=parametry_modul.CzyTak(args["analiza"]); local czy_naglowek=parametry_modul.CzyTak(naglowek_strony); local hash;local czy_kreska_dolna;local prze_nie_main;local czy_strona_lokalna;local nowa_nazwa_strony_linku; if(not czy_analiza)then nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa("",nazwa_strony_linku,naglowek_strony,czy_naglowek,nil,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,{},function(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main) return nowa_nazwa_strony_linku; end); nazwa=czy_nazwa and nazwa or (hash and ("#"..hash) or nil); else nowa_nazwa_strony_linku=nazwa_strony_linku; end; local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (((not czy_naglowek)and(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$")))or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*#(.*)$")))) or nil); if(not bez_przetwarzania)then return p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek and naglowek_strony or hash,nazwa,za,po,nil,nil,nil,nil,nil,nil,nil,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem); else local link=p.TworzLinkBezPrzetwarzania(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,(not czy_strona_lokalna) and nowa_nazwa_strony_linku or (hash and "" or nowa_nazwa_strony_linku),czy_naglowek and naglowek_strony or hash,nazwa,za,po,z_kodowaniem); if(not bez_znacznikow)then local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek_strony or hash or mw.ustring.match(nazwa_strony_linku,"#"),nil,nil); else return link; end; end; end; p["LinkURL"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local linki_modul=require("Module:Linki"); local klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url=linki_modul["GanerujSkładoweURL"](args); local czy_analiza=parametry_modul.CzyTak(args["analiza"]) or parametry_modul.CzyTak(args["a"]); local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]) or parametry_modul.CzyTak(args["bz"]); local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]) or parametry_modul.CzyTak(args["bp"]); local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]) or parametry_modul.CzyTak(args["bk"]); local z_kodowaniem=parametry_modul.CzyTak(args["uri"]) or parametry_modul.CzyTak(args["u"]); local czy_naglowek=parametry_modul.CzyTak(naglowek_strony); local hash;local czy_kreska_dolna;local prze_nie_main;local czy_strona_lokalna;local nowa_nazwa_strony_linku; if((not czy_analiza)and(not czy_url))then nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa("",nazwa_strony_linku,naglowek_strony,czy_naglowek,nil,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,{},function(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main) return nowa_nazwa_strony_linku; end); nazwa=parametry_modul.CzyTak(nazwa) and nazwa or (hash and ("#"..hash) or nil); else nowa_nazwa_strony_linku=nazwa_strony_linku; end; local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$"))) or nil); local function Bez_przetwarzania_lub_bez_znaczkow() if(parametry_modul.CzyTak(bez_przetwarzania))then local bez_znacznikow=parametry_modul.CzyTak(bez_znacznikow); local czy_parametry=parametry_modul.CzyTak(parametry_strony); local wartosc=((not czy_url)and((parametry_modul.CzyTak(klucz_projektu_do_projektu_linku)and (klucz_projektu_do_projektu_linku..":") or ((parametry_modul.CzyTak(kod_jezyka_do_projektu_linku)and (kod_jezyka_do_projektu_linku..":") or "")..(parametry_modul.CzyTak(kod_projektu_do_projektu_linku)and (kod_projektu_do_projektu_linku..":") or "")))..nowa_nazwa_strony_linku) or nil); local link; local po_linku=parametry_modul.CzyTak(po) and po or ""; if((not czy_url)and((czy_parametry)or(parametry_modul.CzyTak(wersja_linku))))then local adres=tostring(mw.uri.fullUrl(wartosc,"")); adres=((not parametry_modul.CzyTak(wersja_linku))or(wersja_linku=="wiki")) and adres or mw.ustring.gsub(adres,"/wiki/","/w/index.php?title=",1); local html_modul=require("Module:Html"); local parametry_i_naglowek=((czy_parametry)and ((((wersja_linku=="w")) and "&" or "?")..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or "") adres=adres..parametry_i_naglowek; link= "["..adres..(parametry_modul.CzyTak(nazwa) and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or (" "..nowa_nazwa_strony_linku))).."]"..po_linku; elseif(czy_url)then local html_modul=require("Module:Html"); local parametry_i_naglowek=((czy_parametry)and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or "") local adres=nowa_nazwa_strony_linku..parametry_i_naglowek; link= "["..adres..(parametry_modul.CzyTak(nazwa) and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or (" "..nowa_nazwa_strony_linku))).."]"..po_linku; else local naglowek=(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or ""); local adres=wartosc..naglowek; link="[[:"..adres..((parametry_modul.CzyTak(nazwa)) and ("|"..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and ("|"..adres..za) or "")).."]]"..po_linku; end; if not bez_znacznikow then local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek_strony,czy_url,czy_parametry_strony); else return link; end; end; end; local wynik=Bez_przetwarzania_lub_bez_znaczkow();if(wynik)then return wynik;end; return linki_modul.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,nil,nil,nil,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem); end; function p.UzyskajKodWikiLinku(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local linki_modul=require("Module:Linki"); local klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url=linki_modul["GanerujSkładoweURL"](args); local wiki_modul=require("Module:Wiki"); local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku); local pudelko_modul=require("Module:Pudełko"); kod_jezyka_koncowy=parametry_modul.CzyTak(kod_jezyka_koncowy) and kod_jezyka_koncowy or pudelko_modul["Kod języka tego projektu"](); kod_projektu_koncowy=parametry_modul.CzyTak(kod_projektu_koncowy) and kod_projektu_koncowy or pudelko_modul["Kod projektu tego projektu"](); local aktywny; local czy_nazwa=parametry_modul.CzyTak(nazwa_strony_linku); if(not czy_nazwa or not mw.ustring.match(nazwa_strony_linku,"_+"))then if((not czy_nazwa)and((not kod_jezyka_koncowy)or(kod_jezyka_koncowy==pudelko_modul["Kod języka tego projektu"]()))and((not kod_projektu_koncowy)or(kod_projektu_koncowy==pudelko_modul["Kod projektu tego projektu"]())))then if((parametry_modul.CzyTak(naglowek_strony)) or (not args["strona"] or args["strona"]=="") or ((args["strona"])and(mw.ustring.match(args["strona"],"^[_%s]*#[_%s]*$"))or(nil)))then aktywny=false; local nazwy_modul=require("Module:Nazwy"); nazwa_strony_linku=nazwy_modul["PEŁNANAZWASTRONY"](); end; else aktywny=true; end; else aktywny=true; local pudelko_modul=require("Module:Pudełko"); nazwa_strony_linku=pudelko_modul["Strona główna tego projektu"](); end; local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=wiki_modul.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy); --- local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony); local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony); local czy_pusta_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku); if(not czy_pusta_nazwa_strony_linku)then local linki_modul=require("Module:Linki"); nazwa_strony_linku,_=linki_modul["PrzetłumaczZnakZastępczyNaStronę"]("","",kod_jezyka_koncowy,kod_projektu_koncowy,czy_naglowek_strony); end; ---- local klasa=wiki_modul.KodyKlasStronyNaDanejWiki{["klucz projektu"]=nil,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,["strona"]=nazwa_strony_linku,["nagłówek"]=czy_naglowek_strony,["url"]=czy_url,["parametry"]=czy_parametry_strony,["aktywny"]=aktywny,}; return klasa; end; p["LinkOgólne"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local miano_przestrzeni_nazw=args["miano przestrzeni nazw"] or args["przestrzeń"] or args["m"]; local czy_dyskusja=parametry_modul.CzyTak(args["dyskusja"] or args["d"]); local klucz_projektu_do_projektu_linku=args["klucz projektu"] or args["k"]; local kod_jezyka_do_projektu_linku=args["kod języka"] or args["kj"]; local kod_projektu_do_projektu_linku=args["kod projektu"] or args["kp"]; local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]) or parametry_modul.CzyTak(args["bz"]); local wyswietl_miano_przestrzeni_nazw=args["wyświetl miano przestrzeni nazw"] or args["wyświetl"] or args["w"]; local nazwa_strony_linku=args[1] or "_"; local czy_nazwa=parametry_modul.CzyTak(args[2]); local czy_analiza=parametry_modul.CzyTak(args["analiza"]) or parametry_modul.CzyTak(args["a"]); local z_kodowaniem=parametry_modul.CzyTak(args["uri"]) or parametry_modul.CzyTak(args["u"]); local nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna; local czy_niepusta_nazwa_przestrzeni_nazw; local nazwy_modul=require("Module:Nazwy"); local czy_aktualna_wiki; if(not czy_analiza)then local tabela_nazw={}; miano_przestrzeni_nazw=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or ""; nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa(miano_przestrzeni_nazw,nazwa_strony_linku,nil,nil,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,tabela_nazw,function(nowa_nazwa_strony_linku,czy_dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main) if(czy_dyskusja)then local tabela_nazw_temp={};tabela_nazw_temp.czy_aktualna_wiki=tabela_nazw.czy_aktualna_wiki; nowa_nazwa_strony_linku=nazwy_modul["NAZWASTRONYDYSKUSJI"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["bez zmiany adresu"]="tak",},tabela_nazw_temp); end; return nowa_nazwa_strony_linku; end); czy_aktualna_wiki=tabela_nazw.czy_aktualna_wiki; else prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil; nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku; end; local tabela_nazw={};tabela_nazw.czy_aktualna_wiki=czy_aktualna_wiki; local czy_biezaca; local czy_nazwa_strony_pusta; local wiki_modul=require("Module:Wiki"); if((czy_dyskusja)or(czy_analiza))then czy_nazwa_strony_pusta=mw.ustring.match(nazwa_strony_linku,"^[%s_:]*$"); if((not czy_nazwa_strony_pusta)or((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~="")))then if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; local nazwy_modul=require("Module:Nazwy"); if(czy_biezaca)then miano_przestrzeni_nazw=nazwy_modul[((czy_dyskusja)and(czy_analiza)) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"](nowa_nazwa_strony_linku,tabela_nazw); else miano_przestrzeni_nazw=nazwy_modul[((czy_dyskusja)and(czy_analiza)) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,},tabela_nazw); end; czy_niepusta_nazwa_przestrzeni_nazw=parametry_modul.CzyTak(miano_przestrzeni_nazw); end; elseif(hash or czy_kreska_dolna)then czy_niepusta_nazwa_przestrzeni_nazw=true; elseif(not prze_nie_main)then miano_przestrzeni_nazw=""; czy_niepusta_nazwa_przestrzeni_nazw=false; else miano_przestrzeni_nazw=prze_nie_main; czy_niepusta_nazwa_przestrzeni_nazw=true; end; local techniczne_modul=require("Module:Techniczne"); local czy_wyswietl_miano_przestrzeni_nazw=parametry_modul.CzyTak(wyswietl_miano_przestrzeni_nazw); local function NazwaLinkuDoStrony() local function CzyPrzestrzen(miano_przestrzeni_nazw) local czy_biezaca; if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; local miano_przestrzeni_nazw; if(czy_biezaca)then miano_przestrzeni_nazw=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else miano_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} or miano_przestrzeni_nazw; end; return miano_przestrzeni_nazw; end; local function Nazwa2(nazwa,czy_wyswietl_miano_przestrzeni_nazw) if(czy_wyswietl_miano_przestrzeni_nazw)then return nazwa; else nazwa=nazwy_modul["NAZWASTRONY"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,},tabela_nazw); if(tabela_nazw.m)then nazwa=mw.getContentLanguage():lcfirst(nazwa); end; return nazwa; end; end; local function Nazwa(nazwa) local ile;local ile2=0; if((czy_analiza) and (not bez_przetwarzania))then nazwa=techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](nazwa) or nazwa; nazwa,ile=mw.ustring.gsub(nazwa,"^[%s_:]*(.+)[%s_:]*:[%s_]*$",function(nazwaprzestrzeni) local nazwa_przestrzeni=CzyPrzestrzen(nazwaprzestrzeni) if(nazwa_przestrzeni)then return nazwa_przestrzeni..":".."%s"; end; ile2=ile+1; end); else nazwa,ile=mw.ustring.gsub(nazwa,"^[%s_:]*(.+)[%s_:]*:[%s_]*$",function(nazwaprzestrzeni) local nazwa_przestrzeni=CzyPrzestrzen(nazwaprzestrzeni) if(nazwa_przestrzeni)then return nowa_nazwa_strony_linku; end; ile2=ile2+1; end); end; if(ile-ile2==0)then return Nazwa2(nazwa,czy_wyswietl_miano_przestrzeni_nazw); else return nazwa; end; end; local function NazwaFormat(wyswietl_miano_przestrzeni_nazw,miano_przestrzeni_nazw,czy_nazwa_strony_pusta) if((not czy_analiza)or(bez_przetwarzania))then return nil;end; if(czy_wyswietl_miano_przestrzeni_nazw)then if(czy_nazwa_strony_pusta)then if(not miano_przestrzeni_nazw)then return "%s:%s"; else return miano_przestrzeni_nazw..((miano_przestrzeni_nazw~="") and ":" or "").."%s"; end; end; else if(czy_nazwa_strony_pusta)then return "%s"; end; end; end; if(czy_niepusta_nazwa_przestrzeni_nazw)then if(czy_wyswietl_miano_przestrzeni_nazw)then if(not czy_nazwa)then if((not czy_kreska_dolna)and(not hash))then nazwa_strony_linku=((czy_analiza) and (not bez_przetwarzania)) and techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](nazwa_strony_linku) or nazwa_strony_linku; if((czy_nazwa_strony_pusta)and(czy_analiza)and(not bez_przetwarzania))then nazwa_strony_linku="%s";end; ---- local aliases; local alias=args["alias miana przestrzeni nazw"] or args["alias"] or args["i"]; local czy_alias=parametry_modul.CzyTak(alias); if(czy_alias)then if((not czy_dyskusja)and(not czy_analiza))then local wiki_modul=require("Module:Wiki"); if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; end; if(czy_biezaca)then local uchwyt=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,uchwyt="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak"} if(uchwyt)then aliases=uchwyt.aliases; --miano_przestrzeni_nazw=uchwyt.name; end; else local uchwyt=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,uchwyt="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(uchwyt)then if(parametry_modul.TypeTable(uchwyt))then aliases=uchwyt.aliasy; --miano_przestrzeni_nazw=uchwyt[1]; else --miano_przestrzeni_nazw=uchwyt; aliases={}; end; end; end; end; ---- if((czy_alias)and(parametry_modul.CzyTak(aliases)))then if(parametry_modul["CzySąElementyNumerowaneTablicy"](aliases))then alias=mw.getContentLanguage():uc(alias); for _,value in pairs(aliases)do if((mw.getContentLanguage():uc(value))==alias)then return alias..":"..nazwa_strony_linku; end; end; end; end; if(not miano_przestrzeni_nazw)then return nil;end; local miano_przestrzeni_nazw_zmienna_tymczasowa; if(czy_biezaca)then miano_przestrzeni_nazw_zmienna_tymczasowa=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; nazwa_strony_linku=((miano_przestrzeni_nazw_zmienna_tymczasowa)and(not czy_nazwa_strony_pusta)and(not prze_nie_main)) and nazwy_modul["NAZWASTRONY"](nowa_nazwa_strony_linku,tabela_nazw) or nazwa_strony_linku; else miano_przestrzeni_nazw_zmienna_tymczasowa=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} or miano_przestrzeni_nazw; nazwa_strony_linku=((miano_przestrzeni_nazw_zmienna_tymczasowa)and(not czy_nazwa_strony_pusta)and(not prze_nie_main)) and nazwy_modul["NAZWASTRONY"]{nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,tabela_nazw} or nazwa_strony_linku; end; if(not miano_przestrzeni_nazw_zmienna_tymczasowa)then return nil;end; return ((miano_przestrzeni_nazw_zmienna_tymczasowa~="") and (miano_przestrzeni_nazw_zmienna_tymczasowa..":") or "")..((((czy_analiza)and(not bez_przetwarzania))and(nazwa_strony_linku=="")) and "%s" or nazwa_strony_linku); else local nazwa=hash and("#"..hash) or nowa_nazwa_strony_linku; nazwa=((czy_analiza) and (not bez_przetwarzania)) and techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](nazwa) or nazwa; nazwa=Nazwa(nazwa); return nazwa; end; end; else if(not czy_nazwa)then if((not czy_kreska_dolna)and(not hash))then if((czy_nazwa_strony_pusta)and((czy_analiza)and(not bez_przetwarzania)))then return "%s"; end; local nazwa=nazwa_strony_linku; nazwa=Nazwa(nazwa); return nazwa; else if((czy_nazwa_strony_pusta)and((czy_analiza)and(not bez_przetwarzania)))then return "%s"; end; local nazwy_modul=require("Module:Nazwy"); local nazwa=hash and ("#"..hash) or nazwy_modul["NAZWASTRONY"]({nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,},tabela_nazw); nazwa=Nazwa(nazwa); return nazwa; end; end; end; else if(not czy_nazwa)then if((not czy_kreska_dolna)and(not hash))then local wynik_nazwa=NazwaFormat(czy_wyswietl_miano_przestrzeni_nazw,miano_przestrzeni_nazw,czy_nazwa_strony_pusta); if(wynik_nazwa)then return wynik_nazwa;end; local nazwa=nowa_nazwa_strony_linku; nazwa=Nazwa(nazwa); return nazwa; else if(czy_nazwa_strony_pusta)then local wynik_nazwa=NazwaFormat(czy_wyswietl_miano_przestrzeni_nazw,miano_przestrzeni_nazw,czy_nazwa_strony_pusta); if(wynik_nazwa)then return wynik_nazwa;end; end; local nazwy_modul=require("Module:Nazwy"); local nazwa=hash and("#"..hash) or nowa_nazwa_strony_linku; nazwa=Nazwa(nazwa); return nazwa; end; end; end; end; local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]) or parametry_modul.CzyTak(args["bp"]); local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]) or parametry_modul.CzyTak(args["bk"]); local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~=""))or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$")or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*#(.*)$"))))) or nil); local nazwa=czy_nazwa and (args[2] and (((czy_analiza) and (not bez_przetwarzania)) and techniczne_modul["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"](args[2]) or args[2]) or nil) or NazwaLinkuDoStrony(); local po=args["po"] or args["p"]; local za=args["za"] or args["z"]; if(not bez_przetwarzania)then return p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,hash,nazwa,za,po,false,nil,nil,nil,true,wyswietl_miano_przestrzeni_nazw,czy_dyskusja,bez_przetwarzania_kodow,bez_znacznikow,z_kodowaniem); else local link=p.TworzLinkBezPrzetwarzania(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,(not czy_strona_lokalna) and nowa_nazwa_strony_linku or (hash and "" or nowa_nazwa_strony_linku),hash,nazwa,za,po,z_kodowaniem); if(not bez_znacznikow)then return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,hash or ((not czy_kreska_dolna) and mw.ustring.match(nazwa_strony_linku,"#") or nil),nil,nil); else return link; end; end; end; function p.ZamianaKategoriiNaLinki(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr("tekst") or PobierzParametr(1); local techniczne_modul=require("Module:Techniczne"); local nazwy_np_modul=wm.loadData("Module:Nazwy/Np"); local kategoria_polska=nazwy_np_modul.Category; local wzor_kategorii_polskiej=techniczne_modul["WzórDanejPrzestrzeniNazw"](kategoria_polska) tekst=mw.ustring.gsub(tekst,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|%[%]]+)%s*|%s*([^%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%2]]"); tekst=mw.ustring.gsub(tekst,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1]]"); tekst=mw.ustring.gsub(tekst,"%[%[%s*"..wzor_kategorii_polskiej.."%s*:%s*([^|%[%]]+)%s*|%s*([^%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%2]]"); tekst=mw.ustring.gsub(tekst,"%[%[%s*"..wzor_kategorii_polskiej.."%s*:%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1]]"); return tekst; end; return p; 8rq6rmb17naj6xyhtwywa4qafujgrls Szablon:LinkURL 10 56508 539972 535599 2026-04-17T19:00:34Z Persino 2851 539972 wikitext text/x-wiki <includeonly>{{#if:{{{bez znaczników|}}}||<templatestyles src="Szablon:Link_wewnętrzny/styles.css" />}}{{#invoke:Linki|LinkURL}}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s do sprawdzenia{{))}} | klucz projektu = ;kod języka;kod projektu;kj;kp;k | k = ;kod języka;kod projektu;kj;kp;klucz projektu | kod języka = ;klucz projektu;k;kj | kj = ;klucz projektu;k;kod języka | kod projektu = ;klucz projektu;k;kp | kp = ;klucz projektu;k;kod projektu | f = ;przestrzeń;nazwa przestrzeni nazw | przestrzeń = ;miano przestrzeni nazw;f | miano przestrzeni nazw = ;przestrzeń;f | strona = txt!;s | s = txt!;strona | parametry = ^.-[^%s%&]*%=[^%s%&]*.-$;c | c = ^.-[^%s%&]*%=[^%s%&]*.-$;parametry | nagłówek = ;g | g = ;nagłówek | nazwa = ;n | n = nazwa | za = ;z | z = ;za | po = ^%a+$;p | p = ^%a+$;po | wersja linku = ^w${{!}}^wiki$?;w | w = ^w${{!}}^wiki$?;wersja linku | analiza = ;a | a = ;analiza | uri = ;u | u = ;uri | bez znaczników = ;bz | bz = ;bez znaczników | bez przetwarzania = ;bp | bp = ;bez przetwarzania | bez przetwarzania kodów = ;bk | bk = ;bez przetwarzania kodów }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> nck94vya8xawq5konwfz7dfimjapgvp 539987 539972 2026-04-17T19:25:02Z Persino 2851 539987 wikitext text/x-wiki <includeonly>{{#if:{{{bez znaczników|{{{bz|}}}}}}||<templatestyles src="Szablon:Link_wewnętrzny/styles.css" />}}{{#invoke:Linki|LinkURL}}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s do sprawdzenia{{))}} | klucz projektu = ;kod języka;kod projektu;kj;kp;k | k = ;kod języka;kod projektu;kj;kp;klucz projektu | kod języka = ;klucz projektu;k;kj | kj = ;klucz projektu;k;kod języka | kod projektu = ;klucz projektu;k;kp | kp = ;klucz projektu;k;kod projektu | f = ;przestrzeń;nazwa przestrzeni nazw | przestrzeń = ;miano przestrzeni nazw;f | miano przestrzeni nazw = ;przestrzeń;f | strona = txt!;s | s = txt!;strona | parametry = ^.-[^%s%&]*%=[^%s%&]*.-$;c | c = ^.-[^%s%&]*%=[^%s%&]*.-$;parametry | nagłówek = ;g | g = ;nagłówek | nazwa = ;n | n = nazwa | za = ;z | z = ;za | po = ^%a+$;p | p = ^%a+$;po | wersja linku = ^w${{!}}^wiki$?;w | w = ^w${{!}}^wiki$?;wersja linku | analiza = ;a | a = ;analiza | uri = ;u | u = ;uri | bez znaczników = ;bz | bz = ;bez znaczników | bez przetwarzania = ;bp | bp = ;bez przetwarzania | bez przetwarzania kodów = ;bk | bk = ;bez przetwarzania kodów }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 4ucsdfswn3szy47sx8shchus196d7kh Moduł:Html 828 56560 540012 539949 2026-04-18T10:15:42Z Persino 2851 540012 Scribunto text/plain local p={}; 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) local parametry_modul=require("Module:Parametry"); local html=parametry_modul.PobierzParametryRamki(frame)("html"); local html_dane_modul=mw.loadData("Module:Html/dane"); local tab_nawiasy=html_dane_modul.tabela_nawiasowa; html=mw.ustring.gsub(html,"([{}|<>%[%]#=%?&])",tab_nawiasy); 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) 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.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); 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;local ile2; atrybut,ile1=mw.ustring.gsub(atrybut,"([<>&])",function(a) return mw.text.encode(a); 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; p["URLStrona"]=function(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 tekst = mw.ustring.gsub(tekst,"(&%a+%;)", kody_literowe_html_i_ich_odpowiedniki_znakowe); -- encje numeryczne dziesiętne: &#956; tekst=mw.ustring.gsub(tekst,"&#(%d+);", function(n) return mw.ustring.char(tonumber(n)) end); -- encje numeryczne szesnastkowe: &#x3BC; tekst = mw.ustring.gsub(tekst,"&#x(%x+);", function(n) return mw.ustring.char(tonumber(n, 16)) end); return tekst; end; function p.ZamianaEncodeTekst(tekst) tekst=mw.uri.encode(mw.uri.decode(tekst,"PATH"),"PATH"); return tekst; end; function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor) tekst=mw.ustring.gsub(tekst,wzor,function(tekst) tekst=p.ZamianaEncodeTekst(tekst); return tekst; end); return tekst; end; function p.StronaParametryIdentyfikacja(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.DecodeTempHashKoduHtmlTekstu(strona,ile1,ile2); parametry=parametry and p.DecodeTempHashKoduHtmlTekstu(parametry,ile1,ile2) or nil; naglowek=naglowek and p.DecodeTempHashKoduHtmlTekstu(naglowek,ile1,ile2) or nil; end; return strona,parametry,naglowek,ile; end; function p.TworzenieAdresuHtml(strona,parametry,naglowek,ile) local adres=strona..(parametry and ("?"..parametry) or "")..((naglowek)and ("#"..naglowek) or ""); adres=p.DecodeHashKoduHtmlTekstu(adres,ile); return adres; end; function p.TworzenieStronaParametryIdentyfikacja(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek) local strona,parametry,naglowek,ile=p.StronaParametryIdentyfikacja(adres); strona=funkcja_strona and funkcja_strona(strona) or strona; parametry=(parametry and funkcja_parametry) and funkcja_parametry(parametry) or parametry; naglowek=(naglowek and funkcja_naglowek) and funkcja_naglowek(naglowek) or naglowek; local adres=p.TworzenieAdresuHtml(strona,parametry,naglowek,ile); return adres; end; function p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek) local function ParametryEncodeURL(a,b,c) return a..p.ZamianaEncodeTekst(b).."="..p.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; if(not w_adresie)then return OperacjeHtml(adres); else return p.TworzenieStronaParametryIdentyfikacja(adres,funkcja_strona,OperacjeHtml,funkcja_naglowek); end; end; function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek) function ParametryZaawansowanyEncodeURL(a,b,c) b=mw.uri.decode(b,"PATH");b=p.EncodeSpecjalneZnakiHtml(b);b=mw.uri.encode(b,"PATH"); c=mw.uri.decode(c,"PATH");c=p.EncodeSpecjalneZnakiHtml(c);c=mw.uri.encode(c,"PATH"); return a..(b.."="..c); end; local function OperacjeURL(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryZaawansowanyEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryZaawansowanyEncodeURL); return adres; end; if(not w_adresie)then return OperacjeURL(adres); else return p.TworzenieStronaParametryIdentyfikacja(adres,funkcja_strona,OperacjeURL,funkcja_naglowek); end; end; function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek) local EncodeHtmlAB=function(a,b,c) b=p.EncodeHtml(b);c=p.EncodeHtml(c); return a..b.."="..c; end; local function ParametryHtml(parametr) parametr=mw.ustring.gsub(parametr,"^(%??)([^&=]*)=([^&]*)",EncodeHtmlAB); parametr=mw.ustring.gsub(parametr,"(&)([^&=]*)=([^&]*)",EncodeHtmlAB); return parametr; end; if(not w_adresie)then return ParametryHtml(parametr); else return p.TworzenieStronaParametryIdentyfikacja(parametr,funkcja_strona,ParametryHtml,funkcja_naglowek); 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) b=KrokEncodeZaawansowanyParametryHtmlABC(b); c=KrokEncodeZaawansowanyParametryHtmlABC(c); return (a or "")..(b.."="..c); end; local function OperacjeParametryHtmlABC(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]-)=([^&]*)",EncodeZaawansowanyParametryHtmlABC); adres=mw.ustring.gsub(adres,"([&])([^&=]-)=([^&]*)",EncodeZaawansowanyParametryHtmlABC); return adres; end; if(not w_adresie)then return OperacjeParametryHtmlABC(adres); else return p.TworzenieStronaParametryIdentyfikacja(adres,funkcja_strona,OperacjeParametryHtmlABC,funkcja_naglowek); 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,"&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.AdresBezProtokolarnyEncodeURL(adres) local adres=p.ParametryEncodeURL(adres,true, function(strona) strona=p.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=p.ZamianaEncodeTekst(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.AdresBezProtokolarnyEncodeURL(strona); end); return html; end; function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony) local ile; elementy_adresu_strony,ile=p.EncodeHashKoduHtmlTekstu(elementy_adresu_strony); if(ile>0)then elementy_adresu_strony=p.DecodeKoduHTMLZnaku(elementy_adresu_strony); end; elementy_adresu_strony=p.EncodeSpecjalneZnakiHtml(elementy_adresu_strony); 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) 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) strona=p.EncodePodstawoweHtmlTekstu(mw.uri.decode(strona,"PATH")); if(z_kodowaniem)then strona=mw.uri.encode(strona,"PATH");end; return strona; end, function(naglowek) naglowek=p.EncodePodstawoweHtmlTekstu(mw.uri.decode(naglowek,"PATH")); if(z_kodowaniem)then naglowek=mw.uri.encode(naglowek,"PATH") end; return naglowek; end); return html; end; return p; 7mwqw5idmh8pruqdk5rha5sz0ge4m6u Wikipedysta:Persino/vector-2022.css 2 58973 539999 539834 2026-04-18T08:33:28Z Persino 2851 539999 css text/css /* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */ body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output, body.action-submit #wikiPreview, .mw-footer-container{ word-wrap: break-word; word-break: break-word; } body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output table, body.action-submit #wikiPreview table, body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output table *, body.action-submit #wikiPreview table *{ word-wrap: normal; word-break: normal; } .mw-content-container, .vector-sticky-header, .vector-page-toolbar-container{ max-width: unset !important; } .mw-header{ padding-top:4px; padding-bottom:4px; } .vector-header-container{ box-sizing:border-box; width: -moz-available !important; width: -webkit-fill-available !important; width: stretch !important; } html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{ margin-top:-2px; } .vector-pinnable-element{ padding-top:3px; } .vector-dropdown .vector-dropdown-content{ padding-top: 6px; margin-top: 7px; } .vector-header-container{ padding-left:20px; padding-right:20px; max-width:none; border-bottom: 1px solid #eaecf0; margin-bottom:4px; max-width:100%; min-width:auto; box-sizing:border-box; } .vector-pinned-container{ margin-bottom:0; padding-right:2px !important; padding-top:2px; } #vector-page-tools-pinned-container.vector-pinned-container{ margin-bottom:0; padding-right:8px !important; } .mw-logo{ min-width:auto; } @media screen and (max-width: 999px){ .mw-header.vector-header-search-toggled .vector-search-box{ margin-left:0; } .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){ margin-left:0; } } @media screen and (max-width: 390px){ .mw-logo{ display:none; } } @media screen and (max-width: 454px){ .cdx-text-input__input{ min-width:auto; } } @media screen and (min-width: 999px) { .client-js.vector-sticky-header-enabled{ scroll-padding-top: 50px; } } .mw-page-container{ max-width:100vw; width:100%; box-sizing:border-box; display:flex; flex-direction:row; min-height:calc( 100% - 3.125rem - 1px - 4px - 8px ); box-sizing:border-box; background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png"); background-color:white; background-attachment:fixed; margin-left:0; margin-right:0; } @media all and (max-width:999px){ .mw-page-container{ background-image:none; } } html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container, html.vector-is-page-available > body > .mw-page-container{ background-image:none; } @media all and (max-width:476px){ .mw-page-container{ min-height:calc( 100% - 6.75rem - 1px - 4px - 8px ); width:100% !important; } } @media all and (max-width:999px){ .mw-page-container{ width:100% !important; } } .mw-page-container > .mw-page-container-inner{ background-color:white; padding-left: 5px; padding-right: 5px; } .mw-page-container > .mw-page-container-inner{ max-width:100vw; margin:auto; margin-top:0; } .vector-main-menu-container, .mw-content-container{ margin-top:2px; } @media all and (min-width:999px){ .mw-page-container > .mw-page-container-inner{ padding-left:5px; padding-right:5px; max-width:100%; } .mw-page-container > .mw-page-container-inner{ width:auto; } .vector-feature-limited-width-clientpref-0 #content{ width:100%; } .mw-page-container .mw-content-container{ display:flex; flex-direction:column; } .mw-page-container .mw-content-container > #content{ height:auto; order:1; } .mw-page-container .mw-content-container > #mw-data-after-content{ order:2; } html.client-nojs #bodyContent{ width:auto !important; } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .mw-body-header{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem ); } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .mw-body-header{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem ); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .mw-body-header{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem ); } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem ); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #bodyContent, html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #bodyContent{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent, html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #bodyContent{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px ); } /**/ /**/ html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem ); } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem ); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px ); } /**/ html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem ); } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem ); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ .mw-footer-container{ display: flex; flex-direction: row; align-items: stretch; justify-content: center; } } body, .mw-page-container, .mw-page-container-inner, .mw-content-container, #content, #bodyContent, #mw-content-text, .mw-parser-output, #footer, .vector-sitenotice-container{ max-width:-moz-available !important; max-width:-webkit-fill-available !important; max-width:stretch !important; } body.ns-10:not(.ns-submit) .mw-body-header, body.ns-828:not(.ns-submit) .vector-sitenotice-container, body.vector-page-css.ns-8 .mw-body-header, body.vector-page-js.ns-8 .mw-body-header, body.vector-page-css.ns-2 .mw-body-header, body.vector-page-js.ns-2 .mw-body-header, body.ns-10:not(.ns-submit) .vector-sitenotice-container, body.ns-828:not(.ns-submit) .vector-sitenotice-container, body.vector-page-css.ns-8 .vector-sitenotice-container, body.vector-page-js.ns-8 .vector-sitenotice-container, body.vector-page-css.ns-2 .vector-sitenotice-container, body.vector-page-js.ns-2 .vector-sitenotice-container, body.ns-10:not(.ns-submit) .vector-page-toolbar, body.ns-828:not(.ns-submit) .vector-page-toolbar, body.vector-page-css.ns-8 .vector-page-toolbar, body.vector-page-js.ns-8 .vector-page-toolbar, body.vector-page-css.ns-2 .vector-page-toolbar, body.vector-page-js.ns-2 .vector-page-toolbar, body.ns-10:not(.ns-submit) #bodyContent, body.ns-828:not(.ns-submit) #bodyContent, body.vector-page-css.ns-8 #bodyContent, body.vector-page-js.ns-8 #bodyContent, body.vector-page-css.ns-2 #bodyContent, body.vector-page-js.ns-2 #bodyContent, body.ns-10:not(.ns-submit) #footer, body.ns-828:not(.ns-submit) #footer, body.vector-page-css.ns-8 #footer, body.vector-page-js.ns-8 #footer, body.vector-page-css.ns-2 #footer, body.vector-page-js.ns-2 #footer{ width:100% !important; } @media all and (min-width:745px){ body.ns-10:not(.ns-submit) .mw-page-container > .mw-page-container-inner, body.ns-828:not(.ns-submit) .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner, body.vector-page-css.ns-8 .mw-page-container > .mw-page-container-inner, body.vector-page-js.ns-8 .mw-page-container > .mw-page-container-inner, body.vector-page-css.ns-2 .mw-page-container > .mw-page-container-inner, body.vector-page-js.ns-2 .mw-page-container > .mw-page-container-inner, body.ns-10 .mw-page-container > .mw-page-container-inner, html.client-nojs{ width:100%; order:2; } } html.vector-feature-limited-width-clientpref-0 .mw-body-header, html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar, html.vector-feature-limited-width-clientpref-0 .vector-sitenotice-container, html.vector-feature-limited-width-clientpref-0 #bodyContent, html.vector-feature-limited-width-clientpref-0 #footer, html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar, html.client-nojs .mw-page-container > .mw-page-container-inner .mw-body-header, html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar, html.client-nojs .mw-page-container > .mw-page-container-inner .vector-sitenotice-container, html.client-nojs .mw-page-container > .mw-page-container-inner #bodyContent, html.client-nojs .mw-page-container > .mw-page-container-inner #footer, html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .mw-body-header, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-sitenotice-container, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #bodyContent, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #footer, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar{ width:100% !important; } html.vector-feature-limited-width-clientpref-0 .mw-page-container > .mw-page-container-inner, html.client-nojs .mw-page-container > .mw-page-container-inner, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner{ max-width:100vw; width:100%; overflow:auto; } #bodyContent, #content{ box-sizing:border-box; } .vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner, .vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{ grid-template-columns: minmax(0,1fr); } body{ background-color:white; } .mw-footer-container{ padding: 7px 0 2px 0; } .mw-footer-container > .mw-footer{ padding:10px 5px; } .mw-page-container{ padding-right:0; padding-left:0; box-sizing:border-box; min-width:auto; } @media all and (min-width: 1000px){ .mw-body{ grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto; grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' '.. columnEnd'; column-gap:0 !important; width:100%; box-sizing:border-box; } } .mw-page-container-inner{ grid-template-columns: 15rem minmax(0,1fr); column-gap: 5px; } html.vector-column-end .vector-appearance-landmark{ max-width:11.875rem; } html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ display:none; } html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ width:8.125rem !important; } html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{ width:11.875rem; } html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end, html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{ width:11.875rem; } .vector-sticky-pinned-container{ padding-bottom:5px; } .vector-sticky-pinned-container::after{ display:none; } .vector-sticky-pinned-container{ top:0; } .client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{ top: 0 !important; max-height:calc( 100vh - 3px ); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{ top: 3.2rem !important; max-height: calc(100vh - 3.2rem - 5px); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{ top: 3.5rem !important; } #siteNotice{ margin:unset; } #centralNotice:not(:empty){ margin: 5px 0 8px 0; } #centralNotice:not(:empty) > div:first-of-type{ margin-top:5px; } #centralNotice:not(:empty) > div:last-of-type{ margin-bottom:8px; } .mw-indicators{ white-space:nowrap; font-size: 0.875rem; line-height: 1.4; } .mw-indicators .mw-parser-output{ font-size: 1.0em; line-height: 1.4; } .vector-page-titlebar-blank .mw-indicators{ display:none; } .mw-body-header{ position:relative; height:2.6rem; box-sizing:border-box; } .mw-body-header > .firstHeading:not(:hover){ height:100%; box-sizing:border-box } body .firstHeading:not(:hover) > .plainlinks, body:not(.action-view) .firstHeading:not(:hover) > .plainlinks{ display:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } body .firstHeading > .plainlinks, body:not(.action-view) .firstHeading > .plainlinks{ text-shadow:none; } .mw-body h1.firstHeading{ font-size: 1.6rem; line-height: 1.4; } body.action-view:not(.ns-special) .firstHeading{ min-height:100%; box-sizing:border-box; overflow:hidden; } body.action-view:not(.ns-special) .firstHeading:not(:hover){ height:100%; } body.action-view:not(.ns-special) .firstHeading:not(:hover){ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; border-bottom:0; padding-top:6px; margin-right:7px; } body:not(.ns-0).action-view:not(.ns-special) .mw-body-header:not(.vector-page-titlebar-blank) .firstHeading:not(:hover){ display:block !important; } body:not(.ns-0).action-view:not(.ns-special) .mw-body-header.vector-page-titlebar-blank .firstHeading:not(:hover){ display:none !important; } html.vector-feature-limited-width-content-enabled body.ns-0.action-view:not(.ns-special) .firstHeading:not(:hover){ display:flex; flex-direction:row; justify-content:flex-start; } body:not(.action-view) .firstHeading:not(:hover), body.action-view.ns-special .firstHeading:not(:hover), html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:not(:hover){ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; border-bottom:0; padding-top:6px; } body:not(.action-view) firstHeading:first-child:not(:hover), body.action-view.ns-special firstHeading:first-child:not(:hover), html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:first-child:not(:hover){ margin-left:0; } html.vector-feature-toc-pinned-clientpref-0 body:not(.action-view) .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-0 body.action-view.ns-special .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-0 body.action-view .firstHeading:not(:first-child):not(:hover){ margin-left:5px; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body:not(.action-view) .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view.ns-special .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view .firstHeading:not(:first-child):not(:hover){ margin-left:0; } body.ns-0 .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type, body.ns-0:not(.action-view) .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type{ order:4; } body.ns-0 .firstHeading:not(:hover) > #firstHeadingTitle, body.ns-0:not(.action-view) .firstHeading:not(:hover) > #firstHeadingTitle{ order:5; } body.ns-0 .firstHeading:not(:hover) > .mw-page-title-main, body.ns-0:not(.action-view) .firstHeading:not(:hover) > .mw-page-title-main{ order:3; } body.ns-0 .firstHeading:not(:hover) > #mw-article-numbering, body.ns-0:not(.action-view) .firstHeading:not(:hover) > #mw-article-numbering{ order:1; } body.ns-0 .firstHeading:not(:hover) > *[lang], body.ns-0:not(.action-view) .firstHeading:not(:hover) > *[lang]{ order:2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } body.ns-0 .firstHeading > .mw-editsection{ height:1.2em; line-height:3.8; } body.ns-0 .firstHeading:not(:hover) > .mw-editsection{ order:4; } body .firstHeading:hover{ display:block; border:1px solid #eaecf0; border-radius:10px; background-color:white; position:absolute; top:0; /*left:-6px;*/ width:auto; padding:5px; z-index:2; } .firstHeading:first-child:hover{ left:-6px; } html.vector-feature-toc-pinned-clientpref-0 .firstHeading:not(:first-child):hover{ left:1.4375rem; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .firstHeading:not(:first-child):hover{ left:-6px; } header.mw-body-header{ justify-content:space-between; width:100%; box-sizing:border-box; } #vector-main-menu > div.vector-pinnable-header{ margin-left:5px; } body .firstHeading:hover{ word-wrap:break-word; hyphens:auto; width:auto; } html.vector-feature-limited-width-content-enabled body.ns-0.action-view .firstHeading:hover{ display:grid !important; justify-content:start; grid-template-columns:auto auto auto auto minmax(auto,1fr); } body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child{ grid-row-start:1; grid-row-end:2; grid-column-start:1; grid-column-end:2; width:auto; } body.ns-0.action-view .firstHeading:hover > :not(#mw-article-numbering):first-child, body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child + *{ grid-row-start:1; grid-row-end:2; grid-column-start:3; grid-column-end:4; width:auto; } body.ns-0.action-view .firstHeading:hover > .mw-page-title-main{ grid-row-start:1; grid-row-end:2; grid-column-start:2; grid-column-end:3; width:auto; } body.ns-0.action-view .firstHeading:hover > .mw-editsection{ grid-row-start:1; grid-row-end:2; grid-column-start:4; grid-column-end:5; width:auto; } body.ns-0.action-view .firstHeading:hover > .plainlinks{ grid-row-start:auto; grid-row-end:auto; grid-column-start:1; grid-column-end:6; width:auto; } body.action-view .firstHeading:hover{ display:block !important; } .mw-body-header > .mw-indicators{ order:3; margin-top:auto; margin-bottom:3px; } .mw-body-header::before{ content:''; display:block; order:3; width:auto; flex:auto 1 1; } .mw-body-header > .vector-toc-landmark{ width:1.5rem; height:2.125rem; } .mw-body-header > .vector-toc-landmark{ order:1; } html.vector-feature-toc-pinned-clientpref-0 .vector-toc-landmark{ margin-right:0; } .mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover){ order:2; } .mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #ca-addsection{ order:3; } .mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #p-lang-btn{ order:4; } .mw-body-header > .vector-toc-landmark ~ #firstHeading:hover ~ #p-lang-btn{ order:3; } /**/ .mw-body-header > #firstHeading:first-child:not(:hover){ order:2; } .mw-body-header > #firstHeading:first-child:not(:hover) ~ #ca-addsection{ order:3; } .mw-body-header > #firstHeading:first-child:not(:hover) ~ #p-lang-btn{ order:4; } .mw-body-header > #firstHeading:first-child:hover ~ #ca-addsection{ order:3; } .mw-body-header > #firstHeading:first-child:hover ~ #p-lang-btn{ order:4; } #ca-addsection{ margin-left:0; margin-right:0; } .vector-page-titlebar{ flex-wrap:nowrap; } /**/ .vector-page-titlebar .vector-page-titlebar-toc .vector-menu-heading{ padding:0.3125em !important; } #vector-page-titlebar-toc-label{ height: 2.125rem; max-width: 28rem; min-height:unset; } .vector-toc-landmark{ margin-top:auto; margin-bottom:0; } .mw-body-header .mw-portlet-lang{ margin-right:0; } #vector-page-titlebar-toc-checkbox{ display:none; } body .firstHeading:hover > .plainlinks, body:not(.action-view) .firstHeading:hover > .plainlinks{ display:block; } #mw-panel{ border-radius: 10px; border: 1px solid #c8ccd1; padding: 5px; } /**/ #mw-panel .vector-menu-heading:not(.mw-menu-inactive), #vector-main-menu-pinned-container .vector-menu-heading:not(.mw-menu-inactive), #vector-main-menu-unpinned-container .vector-menu-heading:not(.mw-menu-inactive), #vector-page-tools-pinned-container .vector-menu-heading:not(.mw-menu-inactive), #vector-page-tools-unpinned-container .vector-menu-heading:not(.mw-menu-inactive){ background-color:whitesmoke; } #mw-panel .mw-menu-inactive, #vector-main-menu-pinned-container .mw-menu-inactive, #vector-main-menu-unpinned-container .mw-menu-inactive, #vector-page-tools-pinned-container .mw-menu-inactive, #vector-page-tools-unpinned-container .mw-menu-inactive{ background-color:lightsteelblue; color:white; } #mw-panel .vector-menu-heading, #vector-main-menu-pinned-container .vector-menu-heading, #vector-main-menu-unpinned-container .vector-menu-heading, #vector-page-tools-pinned-container .vector-menu-heading, #vector-page-tools-unpinned-container .vector-menu-heading{ padding-left:5px !important; padding-right:5px !important; margin-left:0 !important; display:block; border-radius:5px; border:1px solid #c8ccd1; margin-top:3px; margin-bottom:0; } #mw-panel .vector-menu-content:not(.mw-items-inactive), #vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive), #vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive), #vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive){ display:block; border-radius:5px; border:1px solid #c8ccd1; padding: 5px; margin-top:2px; } #mw-panel .vector-menu-content:not(.mw-items-inactive) > ul, #vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul, #vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive) > ul, #vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul{ margin-top:0; } #mw-panel .mw-items-inactive, #vector-main-menu-unpinned-container .mw-items-inactive, #vector-page-tools-pinned-container .mw-items-inactive, #vector-page-tools-unpinned-container .mw-items-inactive{ display:none; } .vector-main-menu #p-navigation .vector-menu-heading{ display:block; } #mw-panel .vector-main-menu-action, #vector-main-menu-unpinned-container .vector-main-menu-action, #vector-page-tools-pinned-container .vector-main-menu-action, #vector-page-tools-unpinned-container .vector-main-menu-action{ display:none; } #mw-panel.hidden_sidebar_panel{ position:relative; z-index:1; } #mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{ position:absolute; right:0; } #mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{ display:none; } #mw-panel #vector-main-menu-pinned-container{ padding-left:0 !important; } #vector-main-menu-pinned-container .vector-main-menu{ margin-left:0 !important; margin-top:0 !important; } #mw-data-after-content .cdx-card{ margin:5px 0; border-radius:10px; } .vector-unpinned-container .vector-menu{ margin:0 5px; } #mw-content-text .mw-parser-output code{ position:relative; } .mw-parser-output pre{ margin-top:8px; margin-bottom:8px; background-color: #f8f9fa; color: #000; border: 1px solid #eaecf0; word-wrap:break-word; word-break:break-word; hyphens:auto; box-sizing:border-box; font-size:110%; } .client-js .vector-search-box-vue .cdx-search-input{ position:relative; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{ border-right-color:#a2a9b1 !important; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{ position:absolute; right:0; } html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button, html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{ position:relative; } .mw-content-container #content{ border-radius:10px; border:1px solid #c8ccd1; padding:10px; padding-top:8px; } body:not(.action-view):not(.ns-special) .vector-body-before-content{ float:right; } body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } body:not(.ns-special) .vector-body-before-content .mw-indicators{ margin-top:2px; float:right; padding-top:0; margin-bottom:0.2px; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } body:not(.page-Wikibooks_Strona_główna).action-view:not(.ns-special) .vector-body-before-content::after{ content:''; display:block; clear:both; order:2; } body.action-view #bodyContent div#siteSub{ display:block !important; } body.action-view:not(.ns-special) .vector-body-before-content #siteSub{ display:block; float:left; order:1; margin-top:5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size:0.8125rem; line-height:1.4em; padding-bottom:1px; } body.action-view:not(.ns-special) .vector-body-before-content{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } body.action-view:not(.ns-special) .vector-body-before-content .mw-indicators{ order:3; white-space:nowrap; } body.action-view:not(.ns-special) .vector-body-before-content{ border-bottom:1px solid #c8ccd1; padding-bottom:3px; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; } #mw-content-text{ margin-top:10px; } .catlinks{ margin-top:7px !important; } .mw-category-generated > :first-child > h2:first-child{ margin-top:14px; } body.ns-14 .mw-category-generated > p:only-child{ border:1px solid #c8ccd1; padding:5px; margin-top:5px; margin-bottom:5px; } body.ns-14 .mw-parser-output.blank{ margin-top:-3px; } body.ns-14 .mw-parser-output.blank ~ .printfooter{ margin-top:3px; } #content::after{ content:''; clear:both; display:block; } #bodyContent{ margin-bottom:0; box-sizing: border-box; } body.action-edit #bodyContent #editform{ margin-top:5px; } body{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:left; word-wrap:break-word; hyphens:auto; } body.action-history #mw-content-text > *:first-child{ margin-top:8px; } .mw-parser-output hr{ font-size:1.2em; } #mw-content-text, #mw-content-text .mw-message-box-warning, #mw-content-text .mw-parser-output{ font-size: calc(0.875rem * 0.89944); line-height: 1.4em; } .mw-ui-icon{ font-size:1rem; } body{ font-size:1rem; line-height:1.4em; } /**/ body.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ margin-bottom:8px; } body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ margin-bottom:0; } body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ margin-top:3px; } body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ margin-top:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ margin-bottom:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ margin-top:0; } /**/ body.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ margin-bottom:8px; } body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ margin-bottom:0; } body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ margin-top:3px; } body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ margin-top:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ margin-bottom:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ margin-top:0; } /**/ body:not(.page-Wikibooks_Strona_główna) .printfooter{ display:block; padding:5px; border:1px solid #c8ccd1; margin-top:6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; clear:both; } .noarticletext{ margin-top:0; margin-bottom:7px; } body.action-view #bodyContent #contentSub{ display:block !important; } #contentSub{ margin-top:5px !important; } #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } #contentSub2{ margin-top:4px !important; } #contentSub2 > .subpages{ border-bottom:1px solid #c8ccd1; padding-bottom:5px; padding-top:2px; } #pwContent:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; font-size:100%; } html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .mw-message-box-warning:not(:last-child){ margin:10px 0; } #mw-content-subtitle .mw-message-box-warning:last-child{ margin:10px 0 8px 0; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:10px !important; margin-bottom:10px !important; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } #mw-content-text > .mw-message-box-warning:first-child{ margin:10px 0; } #mw-content-text > .mw-message-box-warning{ margin:5px 0 10px 0; } body.action-edit #mw-content-text > .mw-editnotice:first-child{ margin-top:12px; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:-3px; } body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{ margin-top:18px; } body:not(.action-view) #mw-content-text > p:first-child{ margin-top:3px; } #contentsub::after{ content:''; display:block; } .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{ margin-top:0.8em; margin-bottom:0.4em; } div.thumb.tright:first-child, div.thumb.tleft:first-child{ margin-top:0; } #mw-content-text .mw-parser-output > p:first-child{ margin-top:0; } #mw-content-text .mw-parser-output > p:not(.br-clear-both):last-child{ margin-bottom:0; } #mw-content-text .mw-parser-output > :not(p).floatleft:first-child + p, #mw-content-text .mw-parser-output > :not(p).floatright:first-child + p, #mw-content-text .mw-parser-output > :not(p).tleft:first-child + p, #mw-content-text .mw-parser-output > :not(p).tright:first-child + p{ margin-top:0; } #mw-content-text .mw-parser-output .template-documentation:first-of-type{ margin-top:0; box-sizing:border-box; } #mw-content-text .mw-parser-output > :not(style):not(link) ~ .template-documentation{ margin-top:10px !important; box-sizing:border-box !important; } #mw-content-text .mw-parser-output #documentation-meta-data:not(:last-child){ margin-top:3px !important; margin-bottom:3px !important; } #mw-content-text .mw-parser-output #documentation-meta-data:last-child{ margin-top:3px !important; margin-bottom:0 !important; } body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{ display:block; content:'(pusta)'; float:left; } .vector-body{ font-size: calc(1rem * 0.875); line-height: 1.5em; } @media all and (min-width:999px){ html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body, html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{ border-right: 1px solid #c8ccd1; border-bottom:1px solid #c8ccd1; padding-right:0.625rem; padding-bottom:0.625rem; } } .vector-toc .vector-toc-list-item a{ font-size:0.8125rem; line-height:1.4em; } .wb-langlinks-link > a::before{ margin-left:-8px; } /**/ .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover, .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover{ display:block; outline:1px solid #eaecf0; border-radius:10px; box-sizing:border-box; width:100%; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{ background-color:blue !important; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover{ background-color:green !important; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{ color:white !important; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{ display:block; width:100%; text-decoration:none; font-size: 0.8125rem; line-height:1.4em; box-sizing:border-box; padding:0 5px !important; } .vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ margin-top:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{ margin-bottom:5px; } .vector-column-start .vector-main-menu-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{ margin-left:12px; } @media (min-width: 999px){ html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ border-radius:10px; border:1px solid #c8ccd1; padding:8px; padding-left:6px; } } #mw-panel-toc-list{ margin-top:6px; } #vector-toc-pinned-container .vector-toc::after{ display:none; } .vector-toc .vector-toc-text{ padding: 3px 0 !important; } button.cdx-button{ z-index:1; } .vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ padding-bottom:3px; margin-bottom:-1px; } .vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ max-height:37px; line-height:1.4em; } .mw-diff-table-prefix{ max-width:calc( 100% - 2em ); } .vector-column-start{ border-top:0; margin-top:0; } html.vector-feature-page-tools-pinned-enabled .vector-column-end, html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{ margin-top:0; margin-left:-1px; border: 1px solid #c8ccd1; border-top:0; padding-top:2px; } .vector-column-start .vector-sticky-pinned-container{ margin-left:0; } .vector-header-container .mw-header{ max-width:none; min-width:auto; } .vector-header-container{ padding-left:0; padding-right:0; } .vector-header-container .mw-header{ padding-left:1.5rem; padding-right:1.5rem; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{ margin-right:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ padding-left:15px; } .vector-pinned-container{ padding: 16px 8px; padding-top:5px; padding-bottom:0; } .vector-dropdown .vector-dropdown-content{ padding-right:4px; padding-bottom:0; /*width:800px;*/ } .vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{ padding-left:12px } .vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{ padding-left:4px; padding-bottom:8px; } .vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{ padding-left:4px; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{ /*max-width:200px;*/ } .mw-header{ grid-template: auto / 15em minmax(0,1fr); grid-template-areas:'headerStart headerEnd'; } #p-navigation.mw-portlet-navigation{ margin-top:0px; } .vector-menu.mw-portlet:not(.mw-portlet-navigation){ margin-top:4px; } .vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{ width:unset !important; } html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{ border-bottom:1px solid black; } html.skin-theme-clientpref-night > body ul.redirectText > li{ background-color:white !important; } html.skin-theme-clientpref-night > body ul.redirectText > li a{ background-color:black !important; color:white !important; } html.skin-theme-clientpref-night > body .mw-revslider-revision{ background-color:white !important; z-index:2; } html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{ background-color:transparent !important; } html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{ filter:grayscale(100%); } html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{ border-color:none; color:white; background-color:unset; border-color:unset; } html.skin-theme-clientpref-night > body > .mw-page-container, html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{ filter:grayscale(100%); } html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange, html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{ background: var(--background-color-content-removed,#ffe49c); filter:invert(100%) grayscale(100%); } html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange, html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{ background: var(--background-color-content-added,#a3d3ff); filter:invert(100%) grayscale(100%); } html.skin-theme-clientpref-night > body .imeselector{ background: var(--background-color-content-added,#a3d3ff); filter:invert(100%) grayscale(100%); } html.skin-theme-clientpref-night > body, html.skin-theme-clientpref-night > body > .mw-page-container, html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText), html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText), html.skin-theme-clientpref-night > body > .vector-header-container, html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){ color:white; background-color:black; border-color:white; } html.skin-theme-clientpref-night > body > div.ui-dialog, html.skin-theme-clientpref-night > body > div.ui-dialog *{ background-color:black; color:white; border-color:white; } html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{ background-image:unset !important; background-color:black !important; } html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{ filter:invert(100%) grayscale(100%); background-color:transparent !important; } html.skin-theme-clientpref-night > body > #mw-teleport-target{ filter:grayscale(100%); } html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"], html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *, html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"], html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{ background-color:transparent !important; color:unset !important; background-color:unset !important; } html.skin-theme-clientpref-night > body > .mw-page-container .imeselector, html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img, html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{ filter:invert(100%) grayscale(100%) !important; background-color:transparent !important; } html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output, html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText), html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){ background-color:black !important; color:white !important; border-color:white !important; } html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a, html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a, html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a, html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{ z-index:0 !important; position:relative !important; } html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover, html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover, html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover, html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{ background-color:black !important; color:white !important; border-color:white !important; z-index:1 !important; position:relative !important; } html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{ z-index:1; position:relative; } html.skin-theme-clientpref-night > body .mw-footer-container, html.skin-theme-clientpref-night > body .mw-footer-container *:not(img), html.skin-theme-clientpref-night > body form.mw-editform .editButtons, html.skin-theme-clientpref-night > body form.mw-editform .editButtons *, html.skin-theme-clientpref-night > body .vector-menu-heading, html.skin-theme-clientpref-night > body .vector-menu-heading *, html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu, html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{ color:white !important; background-color:black !important; border-color:white !important; } html.skin-theme-clientpref-night > body > div.uls-menu, html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon), html.skin-theme-clientpref-night > body > .language-settings-dialog, html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){ color:white; background-color:black; border-color:white; filter:invert(0%); } html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{ background-color:transparent !important; filter:invert(100%) grayscale(100%) !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher, html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{ background-color:transparent !important; border:0 !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button, html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{ background-color:black !important; color:white !important; border-color:white !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{ background-color:white!important; color:black !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){ background-color:black!important; color:white !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{ background-color:transparent !important; } html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{ font-weight:bolder; } html.skin-theme-clientpref-night > body::selection, html.skin-theme-clientpref-night > body *::selection{ background-color:white !important; color:black !important; border-color:white !important; } html.skin-theme-clientpref-night > body::-moz-selection html.skin-theme-clientpref-night > body *::-moz-selection{ background-color:white !important; color:black !important; border-color:white !important; } html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection, html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection, html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection, html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{ background-color:dimgray !important; color:black !important; border-color:white !important; filter:grayscale(100%); } html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search, html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *, html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{ background-color:black !important; color:white !important; border-color:white !important; } html.skin-theme-clientpref-night > body hr, html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{ filter:invert(100%) grayscale(100%); } html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons, html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{ color:white !important; background-color:black !important; border:0 !important; } html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{ color:white; background-color:black; border-color:white; } html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{ background-color:unset; } html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{ font-weight:bolder; } html.skin-theme-clientpref-night > body span.link > a, html.skin-theme-clientpref-night > body span.link > a:link, html.skin-theme-clientpref-night > body span.link > a:visited, html.skin-theme-clientpref-night > body span.link > a:hover, html.skin-theme-clientpref-night > body span.link > a:active{ color:white; background-color:black; border-color:none; font-weight:bold; } html.skin-theme-clientpref-night > body img.mw-logo-icon{ background-color:white; color:black; border-color:black; } html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{ background-color: gray; mix-blend-mode:unset; } html.skin-theme-clientpref-night > body .uls-language-actions-close, html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages, html.skin-theme-clientpref-night > body a.mw-logo img, html.skin-theme-clientpref-night > body span.vector-icon img{ filter:invert(100%) grayscale(100%) !important; } html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{ background-color:white; } html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{ background-color:black; } html.skin-theme-clientpref-night > body a.mw-logo{ background-color:black; } html.skin-theme-clientpref-night > body span.vector-icon{ background-color:white; } @media screen { html.skin-theme-clientpref-night span.tab > a.skin-invert, html.skin-theme-clientpref-night a.skin-invert.label, html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{ color-scheme:unset !important; filter:none !important; } } @media screen { html.skin-theme-clientpref-night .skin-invert-image img, html.skin-theme-clientpref-night .skin-invert.label::after, html.skin-theme-clientpref-night .skin-invert.current::before, html.skin-theme-clientpref-night .oo-ui-iconElement-icon, html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator, html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before, html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow, html.skin-theme-clientpref-night input[type="checkbox"]{ color-scheme: light !important; filter: invert(100%) grayscale(100%) !important; } html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon, html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{ filter:grayscale(100%) !important; } } html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget, html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{ filter:invert(0%) grayscale(100%); } div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger, html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay), html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *, html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form, html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *, html.skin-theme-clientpref-night > body form#wpFilterForm, html.skin-theme-clientpref-night > body form#wpFilterForm *, html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor, html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *, html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container, html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *, html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container, html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *, html.skin-theme-clientpref-night > body div.mw-rcfilters-container, html.skin-theme-clientpref-night > body div.mw-rcfilters-container *, html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top, html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *, html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon, html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *, html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator, html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button, html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{ background-color:unset !important; } html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{ background-color:black; } html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{ position:relative; box-shadow:none; } html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{ background-color:black; color:white; border-color:white; } html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{ background-color: white; color: black; border-color:white; } html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{ color:white; background-color:black; border-color:white; } @media not screen{ } html.vector-feature-custom-font-size-clientpref-0{ font-size:14px; } html.vector-feature-custom-font-size-clientpref-1{ font-size:16px; } html.vector-feature-custom-font-size-clientpref-2{ font-size:18px; } 0tcyjzdjhjdqjitoje8t842wqtnstdf Śpiewnik/Czerwony pas 0 59122 539994 488172 2026-04-17T21:03:08Z Ashaio 4702 literówka 539994 wikitext text/x-wiki {{T|Śpiewnik/NawigacjaOpis}} == Muzyka == <score raw="1" vorbis="1"> \version "2.20.0" \header{ title = "Czerwony pas" poet = "Słowa: Józef Korzeniowski" composer = "Muzyka: autor nieznany" arranger = "Aranżacja: Bogusław Szul-Skjöldkrona" tagline = "" } \score{ \new Staff \with {midiInstrument = "flute"} { \clef treble \key g \minor \time 2/4 \tempo 4=100 \relative g'{ \autoBeamOff d4 g8 a | bes2 | a8( g) fis g | a2 | d,4 fis8 a | c4 bes8 a | d4.( bes8) | g2 | d4 g8 a | bes2 | a8( g) fis g | a2 | d,4 fis8 a | c4 bes8 a | d4.( bes8) | g2 | % refren g8 d' d d | d d bes g | g8 d' d d | bes4 g | g8 d' d d | d d bes g | bes8 bes a a | g4 g | c8 c c c | c c c c | c c c c | d4 d | bes8. a16 g8 a | bes bes g g | a a fis fis | g4 g \bar "|." } \addlyrics { \small { Cze -- rwo -- ny pas, za pa -- sem broń i to -- pór, co bły -- ska z_da -- la, we -- so -- ła myśl, swo -- bo -- dna dłoń, to strój, to ży -- cie gó -- ra -- la. Tam szum Pru -- tu, Cze -- re -- mo -- szu Hu -- cu -- łom przy -- gry -- wa, A o -- cho -- cza ko -- ło -- myj -- ka Do tań -- ca po -- ry -- wa. Dla Hu -- cu -- ła nie ma ży -- cia Jak na po -- ło -- ni -- nie, Gdy go lo -- sy w_do -- ły rzu -- cą, Wnet z_tę -- skno -- ty gi -- nie. } } } \layout{} \midi{} } </score> '''Źródło:''' Bogusław Szul-Skjöldkrona, ''[https://polona.pl/item-view/371e734c-5829-424c-89f5-cc2e04cf5a72?page=167#info:metadata Piosenki leguna tułacza]'' Warszawa, [po 1918]. S. 167. == Tekst == '''Autor:''' Józef Korzeniowski<br> {{Kolumny|3| <poem> <br>1. Czerwony pas, za pasem broń i topór, co błyska z dala, wesoła myśl, swobodna dłoń, to strój, to życie górala. ::Gdy świeży liść pokryje buk ::i czarna góra zczernieje, ::niech dzwoni flet, niech ryczy róg, ::odżyły nasze nadzieje. 2. Pękł rzeki grzbiet, popłynął lód, Czeremosz szumi po skale; nuż w dobry czas kędziory trzód, weseli kąpcie górale. ::Połonin step na szczytach gór, ::tam trawa w pas się podnosi, ::tam ciasnych miedz nie ciągnie sznur, ::tam żaden pan ich nie kosi. 3. Dla waszych trzód tam paszy dość, tam niech się mnożą bogato, tam runom ich pozwólcie rość, tam idźcie na całe lato. ::A gdy już mróz posrebrzy las, ::ładujcie ostrożne konie, ::wy z plonem swym witajcie nas, ::my z czarką podamy dłonie. </poem> }} '''Źródło:''' Stefan Surzyński, ''[https://polona.pl/item/harfiarz-zbior-piesni-patryotycznych-i-narodowych-na-4-meskie-glosy-ser-1,MTExMDMzOTAy/111/#info:metadata "Harfiarz" : zbiór pieśni patryotycznych i narodowych : na 4 męskie głosy. Ser. 1.]'' Tarnów : J. Pisz, 1904. S. 92–93. == Zobacz też == {{Wikiźródła|Czerwony pas a za pasem broń}} * ''[https://bibliotekapiosenki.pl/utwory/Piesn_gorali Pieśń górali]'' w serwisie [https://bibliotekapiosenki.pl/cbpp Cyfrowa Biblioteka Polskiej Piosenki] s3fdzww9j05x405u3b9tx7apkx9y23b Wikipedysta:Persino/Gadget-DodatkiSubst.js/Strona.js 2 60541 540000 539348 2026-04-18T08:47:50Z Persino 2851 540000 javascript text/javascript (function(mw,$){ var NumerSubst=new Array(); var DymkiSubst=new Array(); var SzablonSubst=new Array(); var StronaSubst=new Array(); var KategorieSubst=new Array(); /**/ var czy_nie_gconfig_numersubst=false; var czy_nie_gconfig_dymkisubst=false; var czy_nie_gconfig_szablonsubst=false; var czy_nie_gconfig_stronasubst=false; var czy_nie_gconfig_kategoriesubst=false; /**/ NumerSubst.NumerowanieNaglowkow=function(){ /**/ var gadget_numerowanie_nie_na_stronie_zbiorczej=undefined; var gadget_numerowanie_normalne_nie_na_stronie_zbiorczej=undefined; var gadget_numerowanie_asynchroniczne_nie_na_stronie_zbiorczej=undefined; /**/ var gadget_numerowanie_na_stronie_zbiorczej=undefined; var gadget_numerowanie_normalne_na_stronie_zbiorczej=undefined; var gadget_numerowanie_asynchroniczne_na_stronie_zbiorczej=undefined; /**/ var gadget_numerowanie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej=undefined; var gadget_numerowanie_zapisz_dane_na_kliencie=undefined; /**/ if((window.gConfig!==undefined)&&(window.gConfig.register!==undefined)&&(window.gConfig.get!==undefined)){ if(!czy_nie_gconfig_numersubst){ czy_nie_gconfig_numersubst=true; mw.messages.set({ 'NumerSubst-name': 'Numerowanie nagłówków', 'NumerSubst-description-page': 'Wikibooks:StronicowyParser', 'NumerSubst-numerowanie_nie_na_stronie_zbiorczej': 'Włącz numerowanie nagłówków nie na stronie zbiorczej.', 'NumerSubst-numerowanie_normalne_nie_na_stronie_zbiorczej': "Włącz numerowanie, bez prefiksów, nagłówków nie na stronie zbiorczej.", 'NumerSubst-numerowanie_asynchroniczne_nie_na_stronie_zbiorczej': "Sprawdza, czy na stronie niezbiorczej, występuje strona zbiorcza, czy nie, i na podstawie tego ustawia odpowiednie parametry.", 'NumerSubst-numerowanie_na_stronie_zbiorczej': 'Włącz numerowanie nagłówków na stronie zbiorczej.', 'NumerSubst-numerowanie_normalne_na_stronie_zbiorczej': "Włącz numerowanie, bez prefiksów, nagłówków na stronie zbiorczej.", 'NumerSubst-numerowanie_asynchroniczne_na_stronie_zbiorczej': "Sprawdza, czy na stronie zbiorczej, występuje strona zbiorcza, czy nie, i na podstawie tego ustawia odpowiednie parametry.", 'NumerSubst-numerowanie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej': 'Uruchom tylko dla stron ładowanych na głównej stronie zbiorczej', 'NumerSubst-numerowanie_zapisz_dane_na_kliencie':'Zapisuje dane, co do numerowania rozdziałów i artykułówna kliencie', }); gConfig.register('NumerSubst', {name: mw.msg('NumerSubst-name'), descriptionPage: mw.msg('NumerSubst-description-page')}, [ { name: 'numerowanie_nie_na_stronie_zbiorczej', desc: mw.msg('NumerSubst-numerowanie_nie_na_stronie_zbiorczej'), type: 'boolean', deflt: true, legacy: [window, 'wb_NumerSubst-numerowanie_nie_na_stronie_zbiorczej'] }, { name: 'numerowanie_normalne_nie_na_stronie_zbiorczej', desc: mw.msg('NumerSubst-numerowanie_normalne_nie_na_stronie_zbiorczej'), type: 'boolean', deflt: false, legacy: [window, 'wb_NumerSubst-numerowanie_normalne_nie_na_stronie_zbiorczej'] }, { name: 'numerowanie_asynchroniczne_nie_na_stronie_zbiorczej', desc: mw.msg('NumerSubst-numerowanie_asynchroniczne_nie_na_stronie_zbiorczej'), type: 'boolean', deflt: true, legacy: [window, 'wb_NumerSubst-numerowanie_asynchroniczne_nie_na_stronie_zbiorczej'] }, { name: 'numerowanie_na_stronie_zbiorczej', desc: mw.msg('NumerSubst-numerowanie_na_stronie_zbiorczej'), type: 'boolean', deflt: true, legacy: [window, 'wb_NumerSubst-numerowanie_na_stronie_zbiorczej'] }, { name: 'numerowanie-normalne_na_stronie_zbiorczej', desc: mw.msg('NumerSubst-numerowanie_normalne_na_stronie_zbiorczej'), type: 'boolean', deflt: false, legacy: [window, 'wb_NumerSubst-numerowanie_normalne_na_stronie_zbiorczej'] }, { name: 'numerowanie_asynchroniczne_na_stronie_zbiorczej', desc: mw.msg('NumerSubst-numerowanie_asynchroniczne_na_stronie_zbiorczej'), type: 'boolean', deflt:true, legacy: [window, 'wb_NumerSubst-numerowanie_asynchroniczne_na_stronie_zbiorczej'] }, { name: 'numerowanie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej', desc: mw.msg('NumerSubst-numerowanie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej'), type: 'boolean', deflt: true, legacy: [window, 'wb_NumerSubst-numerowanie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej'] }, { name: 'numerowanie_zapisz_dane_na_kliencie', desc: mw.msg('NumerSubst-numerowanie_zapisz_dane_na_kliencie'), type: 'boolean', deflt: false, legacy: [window, 'wb_NumerSubst-numerowanie_zapisz_dane_na_kliencie'] }, ]); } gadget_numerowanie_nie_na_stronie_zbiorczej=(gConfig.get('NumerSubst', 'numerowanie_nie_na_stronie_zbiorczej')==true); gadget_numerowanie_normalne_nie_na_stronie_zbiorczej=(gConfig.get('NumerSubst', 'numerowanie_normalne_nie_na_stronie_zbiorczej')==true); gadget_numerowanie_asynchroniczne_nie_na_stronie_zbiorczej=(gConfig.get('NumerSubst', 'numerowanie_asynchroniczne_nie_na_stronie_zbiorczej')==true); /**/ gadget_numerowanie_na_stronie_zbiorczej=(gConfig.get('NumerSubst', 'numerowanie_na_stronie_zbiorczej')==true); gadget_numerowanie_normalne_na_stronie_zbiorczej=(gConfig.get('NumerSubst', 'numerowanie_normalne_na_stronie_zbiorczej')==true); gadget_numerowanie_asynchroniczne_na_stronie_zbiorczej=(gConfig.get('NumerSubst', 'numerowanie_asynchroniczne_na_stronie_zbiorczej')==true); /**/ gadget_numerowanie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej=(gConfig.get('NumerSubst','numerowanie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej')==true); gadget_numerowanie_zapisz_dane_na_kliencie=(gConfig.get('NumerSubst','numerowanie_zapisz_dane_na_kliencie')==true); } gadget_numerowanie_nie_na_stronie_zbiorczej=(gadget_numerowanie_nie_na_stronie_zbiorczej!==undefined)?gadget_numerowanie_nie_na_stronie_zbiorczej:true; gadget_numerowanie_normalne_nie_na_stronie_zbiorczej=(gadget_numerowanie_normalne_nie_na_stronie_zbiorczej!==undefined)?gadget_numerowanie_normalne_nie_na_stronie_zbiorczej:false; gadget_numerowanie_asynchroniczne_nie_na_stronie_zbiorczej=(gadget_numerowanie_asynchroniczne_nie_na_stronie_zbiorczej!==undefined)?gadget_numerowanie_asynchroniczne_nie_na_stronie_zbiorczej:true; /**/ gadget_numerowanie_na_stronie_zbiorczej=(gadget_numerowanie_na_stronie_zbiorczej!==undefined)?gadget_numerowanie_na_stronie_zbiorczej:true; gadget_numerowanie_normalne_na_stronie_zbiorczej=(gadget_numerowanie_normalne_na_stronie_zbiorczej!==undefined)?gadget_numerowanie_normalne_na_stronie_zbiorczej:false; gadget_numerowanie_asynchroniczne_na_stronie_zbiorczej=(gadget_numerowanie_asynchroniczne_na_stronie_zbiorczej!==undefined)?gadget_numerowanie_asynchroniczne_na_stronie_zbiorczej:true; /**/ gadget_numerowanie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej=(gadget_numerowanie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej!==undefined)?gadget_numerowanie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej:true; gadget_numerowanie_zapisz_dane_na_kliencie=(gadget_numerowanie_zapisz_dane_na_kliencie!==undefined)?gadget_numerowanie_zapisz_dane_na_kliencie:false; /**/ var this_zmienna=this; /**/ /**/ this.UstalanieZmiennychNumerowanieNapisoweWprowadzeniaTekstu=function(aktualna_strona,element){ var funkcja=function(){ return DodatkiSkrypt.Scribunto.StronicowyParser.CzyPrawdopodobnieStronaZbiorcza(aktualna_strona,element).DodatkiSkryptThen(function(wikikod){ if(wikikod){ var gadget_numerowanie=gadget_numerowanie_na_stronie_zbiorczej; var gadget_numerowanie_normalne=gadget_numerowanie_normalne_na_stronie_zbiorczej; var gadget_numerowanie_asynchroniczne=gadget_numerowanie_asynchroniczne_na_stronie_zbiorczej; }else{ var gadget_numerowanie=gadget_numerowanie_nie_na_stronie_zbiorczej; var gadget_numerowanie_normalne=gadget_numerowanie_normalne_nie_na_stronie_zbiorczej; var gadget_numerowanie_asynchroniczne=gadget_numerowanie_asynchroniczne_nie_na_stronie_zbiorczej; } return Promise.resolve([gadget_numerowanie,gadget_numerowanie_normalne,gadget_numerowanie_asynchroniczne]); }); }; if(gadget_numerowanie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej){ return DodatkiSkrypt.Scribunto.StronicowyParser.CzyPrawdopodobnieStronaZbiorcza().DodatkiSkryptThen(function(data){ if((data)&&(data!="")){ return funkcja(); }else{ return Promise.resolve([false,false,false]); } }); }else{ return funkcja(); } } var promise_numerowanie=this.UstalanieZmiennychNumerowanieNapisoweWprowadzeniaTekstu(); var tab_promise_numerowanie=new Array(); tab_promise_numerowanie.push(promise_numerowanie); var this_zmienna=this; //gadget_numerowanie=((gadget_numerowanie!==undefined)?gadget_numerowanie:true); var UstalanieZmiennychNumerowanie=function(aktualna_strona,element,funkcja){ var gadget_numerowanie;var gadget_numerowanie_normalne;var gadget_numerowanie_asynchroniczne; return promise_numerowanie.DodatkiSkryptThen(function(data){ gadget_numerowanie=data[0];gadget_numerowanie_normalne=data[1];gadget_numerowanie_asynchroniczne=data[2]; if(gadget_numerowanie_asynchroniczne){ if(aktualna_strona){ tab_promise_numerowanie.push(this_zmienna.UstalanieZmiennychNumerowanieNapisoweWprowadzeniaTekstu(aktualna_strona,element)); promise_numerowanie=tab_promise_numerowanie.at(-1); return promise_numerowanie; } } return data; }).DodatkiSkryptThen(function(data){ return funkcja(data,aktualna_strona,element); }).DodatkiSkryptFinally(function(data){ if(gadget_numerowanie_asynchroniczne){ if(aktualna_strona){ tab_promise_numerowanie.pop(); promise_numerowanie=tab_promise_numerowanie.at(-1); } } return data; }); } /**/ this.NumerowanieNaglowkowStronZObiektami=function(id_numerowanie,prefix){ var fun_hnumer=DodatkiSkrypt.Szereg.HNumer.LiczonyHNumer(); var numeracja=new Array(); var czy_numerowac=false; var p=false; var stare_fun_hnumer; var toc_h=DodatkiSkrypt.Szereg.Styl.TocHn(); var hn=DodatkiSkrypt.Szereg.Styl.Hn(); $(id_numerowanie).find(hn).not(toc_h).DodatkiSkryptEach(function(i,h_element){ /**/ var div_element=$(h_element).closest('.mw-heading'); var element=($(div_element).length>0)?$(div_element):$(h_element); var szablon_spec=$(element).parents('.strona_start').first(); var szablon_spec_w_drzewie=$(id_numerowanie).find(szablon_spec); if((szablon_spec.length>0)&&(szablon_spec_w_drzewie.length>0)){return;} /**/ var CzyTak=function(klasa1,not_klasa2){ var str_elements=$(element).parents(klasa1); if(not_klasa2){ str_elements=$(str_elements).not(not_klasa2); } if(($(str_elements).length>0) &&(($(str_elements).filter(id_numerowanie).length==0) &&($(str_elements).find(id_numerowanie).length==0) ) ){return true;} return false; } var tak=CzyTak('.rodzic_szablon_subst_js');if(tak){return;}; var tak=CzyTak('.artykułsubst');if(tak){return;}; var tak=CzyTak('.klasa_książki');if(tak){return;}; var tak=CzyTak('.rozdział_książki','.klasa_książki > .klasa_nagłówka > .rozdział_książki');if(tak){return;}; /**/ var szablon=$(element).find('.mw-numbering-main-page, .numeracja'); if(szablon.length>0){return;}; czy_numerowac=true; var hn_element=$(h_element).not(toc_h).first().get(0); var poziom_naglowka=DodatkiSkrypt.Szereg.HNumer.PoziomNapisuWprowadzeniaTekstu(hn_element); var numer=fun_hnumer(poziom_naglowka); var czy_ponumerowany=$(element).children('.numeracja'); if(numeracja.length<numer){numeracja.push(1);} else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);} else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);}; if(czy_ponumerowany.length==0){ var span=document.createElement('span'); span.setAttribute('class',"numeracja"); $(span).html(((prefix!=="")?(prefix+"."):"")+numeracja.join('.')+".&nbsp;"); var child=$(element).contents().first(); if($(child).length>0){ $(child).before(span); }else{ $(element).append(span); } }else{ $(czy_ponumerowany).first().html(((prefix!=="")?(prefix+"."):"")+numeracja.join('.')+".&nbsp;"); } }); return czy_numerowac; } this.NumerowanieNaglowkowStron=function(id_numerowanie,prefix,czy_bez_prefix){ return promise_numerowanie.DodatkiSkryptThen(function(data){ var gadget_numerowanie=data[0];var gadget_numerowanie_normalne=data[1];var gadget_numerowanie_asynchroniczne=data[2]; if(!gadget_numerowanie){return;} if(!czy_bez_prefix){prefix="";}; var tab_promise=new Array(); var czy_numerowac=this_zmienna.NumerowanieNaglowkowStronZObiektami(id_numerowanie,prefix); var strona_start=$(id_numerowanie).find('.strona_start'); if(strona_start.length>0){ for(var i=0;i<strona_start.length;++i){ var artykulsubst=$(strona_start[i]).find(".artykułsubst"); var obiekt; if(artykulsubst.length>0){ obiekt=$(artykulsubst).find('.zawartość')[0]; }else{ obiekt=$(strona_start[i]).find('.ciało_strona')[0]; } if(obiekt){ var prefix2=((strona_start.length==1)?((!czy_numerowac)?prefix:""):""); if(prefix2!=""){ var promise=this_zmienna.NumerowanieNaglowkowStron(obiekt,prefix2,czy_bez_prefix); tab_promise.push(promise); }else if(artykulsubst.length>0){ var str_adres=$(artykulsubst).find('.adres'); if((str_adres.length>0)&&(obiekt!=null)){ if(!gadget_numerowanie_normalne){ var adres=$(str_adres[0]).html().trim(); var artykul=DodatkiSkrypt.Nazwy.ARTICLENAME(adres); var aktualna_strona=DodatkiSkrypt.Nazwy.FULLPAGENAME(adres); var promise=UstalanieZmiennychNumerowanie(aktualna_strona,id_numerowanie,function(data_promise_numerowanie,aktualna_strona,id_numerowanie){ return this_zmienna.PreparujStronyJednostek(obiekt,artykul,aktualna_strona,true).DodatkiSkryptThen(function(){ return this_zmienna.NumerowanieNaglowkowStron(obiekt,""); }); }); tab_promise.push(promise); }else{ var promise=this_zmienna.NumerowanieNaglowkowStron(obiekt,"",czy_bez_prefix); tab_promise.push(promise); } }else{ var promise=this_zmienna.NumerowanieNaglowkowStron(obiekt,"",czy_bez_prefix); tab_promise.push(promise); } }else{ var promise=this_zmienna.NumerowanieNaglowkowStron(obiekt,"",czy_bez_prefix); tab_promise.push(promise); } } } } return Promise.DodatkiSkryptAll(tab_promise); }); } this.FunkcjaZdarzenStronyGlownejPodrecznika=function(){ } this.NumerowanieStronGłównychPodręcznikowWedlugZebranychDanych=function(id_numerowanie,json,aktualna_strona){ var JSONDane=function(json,numer_porzadkowy){ for(var rozdzial in json){ var tab_rozdzial=json[rozdzial]; for(var numer_rozdzialu in tab_rozdzial){ var tab_numer_rozdzial=tab_rozdzial[numer_rozdzialu]; for(var artykul in tab_numer_rozdzial){ var tab_artykul=tab_numer_rozdzial[artykul]; for(var numer_artykulu in tab_artykul){ var tab_numer_artykulu=tab_artykul[numer_artykulu]; for(var i in tab_numer_artykulu){ var tab_i=tab_numer_artykulu[i]; if(tab_i["numer"]==numer_porzadkowy){ var czy_podreczniku=tab_i["czy w podręczniku"]; var czy_url=!!(tab_i["url"]); var zebrane_dane={ "rozdział":DodatkiSkrypt.Szereg.Napis.UsuwanieBezbarwnychZnakowych(DodatkiSkrypt.Szereg.Napis.UsuwanieApostrofowe(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzezOdpowiednieZnaki(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(rozdzial)))), "numer rozdziału":numer_rozdzialu, "artykuł":(((!czy_podreczniku)&&(!czy_url))?(DodatkiSkrypt.Szereg.Napis.OdWielkiejPierwszaLiteraTekstu(DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzezOdpowiednieZnaki(DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(artykul))))):(DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzezOdpowiednieZnaki(DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(artykul))))), "numer artykułu":numer_artykulu, "link":((tab_i["link"])?(DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzezOdpowiednieZnaki(DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(tab_i["link"])))):undefined), "przekierowanie":((tab_i["przekierowanie"]!==undefined)? ((!czy_podreczniku)?(DodatkiSkrypt.Szereg.Napis.OdWielkiejPierwszaLiteraTekstu(DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzezOdpowiednieZnaki(DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(tab_i["przekierowanie"]))))):(DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzezOdpowiednieZnaki(DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(tab_i["przekierowanie"]))))):undefined), "pełna nazwa książki":((tab_i["pełna nazwa książki"]!=undefined)? (DodatkiSkrypt.Szereg.Napis.OdWielkiejPierwszaLiteraTekstu(DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzezOdpowiednieZnaki(DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(tab_i["pełna nazwa książki"]))))):undefined), "kod języka":tab_i["kod języka"], "kod projektu":tab_i["kod projektu"], "nazwa":((tab_i["nazwa"]!==undefined)?(DodatkiSkrypt.Szereg.Napis.UsuwanieBezbarwnychZnakowych(DodatkiSkrypt.Szereg.Napis.UsuwanieApostrofowe(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzezOdpowiednieZnaki(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(tab_i["nazwa"]))))):undefined), "spis treści":tab_i["spis treści"], "dodane":tab_i["dodane"], "czy w podręczniku":czy_podreczniku, "inna książka":tab_i["inna książka"], "url":czy_url, }; return zebrane_dane; } } } } } } return null; } /**/ var przestrzenie_alternatywne={ "w":"wikipedia", "b":"wikibooks", "wikt":"wiktionary", "q":"wikiquote", "s":"wikisource", "voy":"wikivoyage", "n":"wikinews", "v":"wikiversity", }; var PrzestrzenStrony=function(klucz,tabela, czy_klucz){ klucz=klucz.toLowerCase(); var projekt=tabela[klucz]; if(projekt){return czy_klucz?klucz:projekt;} for(p in tabela){ var projekt=tabela[p]; if(projekt){ var projekt_data=(typeof(projekt)=="object")?projekt[0]:projekt; projekt_data=projekt_data.toLowerCase(); if(projekt_data==klucz){ return czy_klucz?p:projekt; } } } return undefined; } var przestrzenie_poza={ "foundation":"wikimedia", "commons":"wikimedia", "species":"wikimedia", "meta":"wikimedia", "mw":["mediawiki","www",], "d":["wikidata","www",], "f":["wikifunctions","www",], }; /**/ var LiczbaElementowaTablicowaJson=function(){ for(var numer_porzadkowy=1;;++numer_porzadkowy){ var element_json=JSONDane(json,numer_porzadkowy); if(element_json===null){ return Math.max(numer_porzadkowy-1,0); } } return 0; } var FunctionNumeracja=function(p){ var i_begin=0; var max_i_begin=1; var j=1; var f=0; var k=-1; var dane;var yes=true; var CzyPomijanieElementoweSpisuRzeczy=function(element,pierwsze_dziecko,j,tekst){ //console.log("BADANIE ELEMENTU:",element,element.outerHTML,tekst) var tak=( (j>1) &&($(element).parents('div.center, div.mw-heading').find('.mw-numbering-main-page').length==0) &&($(element).closest('.ambox, .tmbox, .fmbox, .ombox, .dmbox, .npm, .wm').length==0) &&(!/^\s*$/g.test($(element).text())) &&($(element).not('a').length==0) &&(!/^\s*\-\s*/g.test($(element).closest('td,th').text())) &&($(element).closest('.noprint').length==0) &&(($(element).closest("p").length==0)||(/^[^\n]*:[^\S\n]*$/g.test(tekst))) &&(!pierwsze_dziecko) &&(!DodatkiSkrypt.Szereg.Html.Float(element)) &&($(element).filter('.mw-file-description').length==0) &&($(element).closest("[typeof=\"mw:File\"]").length==0) &&($(element).closest('.reference').length==0) &&($(element).closest('.toc_artykuł').length==0) &&($(element).filter("a.mw-selflink.selflink").length==0) &&(!( ($(element).filter("a:not(.mw-selflink):not(.selflink)").length>0) &&( (/^([Oo]k[łl]adka|[Ww]ersja_do_druku|[Ww]ersja_do_czytania)$/g.test(tekst)) ) )) ) console.log("BADANIE ELEMENTU:",element,element.outerHTML,tekst,tak); return tak; } var RozdzialBezNumeracji=function(tekst){ var czy=/^[\d\.]+\s+/g.test(tekst)||/^[\d\.]+\s*$/g.test(tekst); if(czy){ var num=tekst.match(/^([\d\.]+)/g).toString(); var tab=num.split("."); if(tab.length==1){ if(/^\d+$/g.test(num)){ return tekst; } }else{ console.log(tab,tekst,"_____________________________________") if(tab[tab.length-1]==""){tab.splice(tab.length-1,1);}; } var tak=true; for(var i=0;i<tab.length;++i){ tak=tak&&(/^\d+$/g.test(tab[i])); if(!tak){break;}; } if(tak){ tekst=tekst.replace(/^[\d\.]+\s*/g,""); } } return tekst; } var OperacjeNaTestowychElementach=function(element){ var iterator=DodatkiSkrypt.Szereg.Html.IteratorPotomkowyPoElemencieHtml(element) var __element; do{ __element=iterator(); console.log(__element,"TYTAN0123") if(__element){ if(!__element.tagName){ if($(__element).closest(".mw-numbering-main-page").length>0){continue;} var text=__element.nodeValue; text=RozdzialBezNumeracji(text); console.log(text,"TYTAn0000000",__element.nodeValue) text=text.replace(/^\d+\s+/g,""); text=text.replace(/^\s*[IVXL]+\s+/g,""); text=text.replace(/\s*\([0-9a-zA-Z]+\)\s+/g,"") __element.nodeValue=text; break; } } }while(__element); } var roznica_spis_tresci=0; var Numerowanie=function(element,tag,tekst,pierwsze_dziecko,nazwa,czy_edit){ dane=((yes)||(!dane))?JSONDane(json,j):dane; if(dane===null){return;} var Numer=function(dane){ var numer_rozdzialu=dane["numer rozdziału"]; var numer_artykulu=dane["numer artykułu"]; var numer=((numer_rozdzialu!="")&&(numer_artykulu!=""))?(numer_rozdzialu+"."+numer_artykulu):((numer_rozdzialu)?numer_rozdzialu:numer_artykulu); if(numer==""){return null;} numer="("+numer+") "; return numer; } if(dane["dodane"]){ yes=true; ++j; dane=((yes)||(!dane))?JSONDane(json,j):dane; if(dane==null){return;} } var spis_tresci;var rozdzial;var artykul;var przekierowanie;var numer_rozdzialu;var numer_artykulu; var fun_pozycja=function(){ spis_tresci=dane["spis treści"]; rozdzial=dane["rozdział"]; artykul=dane["artykuł"]; przekierowanie=dane["przekierowanie"]; numer_rozdzialu=dane["numer rozdziału"]; numer_artykulu=dane["numer artykułu"]; } fun_pozycja(); if((spis_tresci===undefined)&&(rozdzial=="Spis treści")&&(numer_rozdzialu=="")&&(artykul=="")&&(numer_artykulu=="")){ ++j; dane=JSONDane(json,j); max_i_begin++; if(dane===null){return;} fun_pozycja(); } console.log(rozdzial,spis_tresci,numer_rozdzialu,artykul,numer_artykulu,"TYTAn1231"); if((spis_tresci==undefined)&&(rozdzial=="Główny spis treści")&&(numer_rozdzialu=="")&&(artykul=="")&&(numer_artykulu=="")){ console.log("TYTAn1232") roznica_spis_tresci+=0; console.log("TYTAN1233") ++j; dane=JSONDane(json,j); max_i_begin++; if(dane===null){return;} fun_pozycja(); }else{ var spis_fullname=DodatkiSkrypt.Nazwy.ARTICLENAME(DodatkiSkrypt.Info.page.fullname); var rozdzial_temp="Spis treści - "+spis_fullname; spis_fullname=spis_fullname.replace(/[\s_]/g,"_"); console.log(rozdzial,rozdzial_temp,numer_rozdzialu,artykul,numer_artykulu,DodatkiSkrypt.Info.page.fullname,"TYTAN76979") if((rozdzial==rozdzial_temp)&&(numer_rozdzialu!="")&&(artykul=="")&&(numer_artykulu=="")){ console.log("TYTAN1234") ++j; dane=JSONDane(json,j); max_i_begin++; if(dane===null){return;} fun_pozycja(); console.log(rozdzial,rozdzial_temp,numer_rozdzialu,artykul,numer_artykulu,spis_fullname,DodatkiSkrypt.Info.page.fullname,"TYTANbbbbb") if((rozdzial==rozdzial_temp)&&(numer_rozdzialu!="")&&(artykul==spis_fullname)&&(numer_artykulu=="")){ ++j; dane=JSONDane(json,j); max_i_begin++; if(dane===null){return;} fun_pozycja(); } } } var NumerujLinki=function(dane,czy_a,tag){ var numer=Numer(dane); if(!numer){return;}; var tak=false; var hn=DodatkiSkrypt.Szereg.Styl.Hn(); var toc_h=DodatkiSkrypt.Szereg.Styl.TocHn(); var h_element=$(element).closest(hn).not(toc_h); var element_heading=$(h_element).closest('div.mw-heading'); var hn_element=(($(element_heading).length>0)?$(element_heading):$(h_element)); var element_naglowek=(($(hn_element).length>0)?$(hn_element):($(element).closest('div.center'))); $(element_naglowek).DodatkiSkryptEach(function(i,element){ $(element).find('> .mw-numbering-main-page, > .link > .mw-numbering-main-page').DodatkiSkryptEach(function(i,element){ if($(element).html()==numer){tak=true;} }); }); $($(element).parent()).filter('div.template-center').find(' > div').DodatkiSkryptEach(function(i,element){ $(element).find('> .mw-numbering-main-page, > .link > .mw-numbering-main-page').DodatkiSkryptEach(function(i,element){ if($(element).html()==numer){tak=true;} }); }); if(tak){return;}; var span=document.createElement('span'); $(span).addClass('mw-numbering-main-page'); $(span).html(numer); /*if((tag)||(tag=="H1")||(tag=="H2")||(tag=="H3")||(tag=="H4")||(tag=="H5")||(tag=="H6")){ element2=$(element).parent(); if(element2.length>0){element=element2[0];}; }*/ if(!czy_a){ $(element).before(span); }else{ var if_dziecko=(pierwsze_dziecko)?pierwsze_dziecko:element.firstChild; if(if_dziecko){ $(if_dziecko).before(span); }else{ $(element).append(span); } } $(element).closest('li').parents("ul, ol").filter(".mw-parser-output ul, .mw-parser-output ol").DodatkiSkryptEach(function(i,element){ $(element).addClass('css_numersubst'); }); } if(tag=="A"){ tekst=DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzezOdpowiednieZnaki(DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(tekst))); var czy_poza=(!dane["czy w podręczniku"]); var kod_jezyka=dane["kod języka"];var kod_projektu=dane["kod projektu"]; var link=dane["link"]; var czy_url=dane["url"]; //var link2=link?link.replace(new RegExp("^[:%s_]*"+kod_jezyka+"[%s_:]*:"),"").replace(new RegExp("^[:%s_]*"+kod_projektu+"[%s_:]*:"),""):link; //link2=link2?link2.replace(new RegExp("^[:%s_]*"+kod_projektu+"[%s_:]*:"),"").replace(new RegExp("^[:%s_]*"+kod_jezyka+"[%s_:]*:"),""):link2; console.log("TYTAN0",przekierowanie); if(((artykul!="")&&(numer_artykulu!=""))&&(spis_tresci==undefined)&(czy_poza)&&(((kod_jezyka!=null)&&(kod_jezyka!=""))||((kod_projektu!=null)&&(kod_projektu!=""))||czy_url)&&(link)&&(!((kod_jezyka=="pl")&&(kod_projektu=="b")&&(/^([\s_]*:[\s_]*(?i:pl)){1,}[\s_]*:[\s_]*(?!(?i:b)[\s_]*:)/g.test(link))))/*&&(((kod_projektu=="url")&&(artykul==link))||(link2==(przekierowanie||artykul)))*/){ console.log(czy_url,tekst,"TYTAN123"); if(!czy_url){ var nazwa=dane["nazwa"]; link=link.replace(/^\s*:/g,""); var klucz=link.match(/^([^:]*):/); if(klucz==null){ klucz=((kod_jezyka=="pl")?kod_projektu:((kod_projektu=="b")?kod_jezyka:kod_projektu)); var projekt=PrzestrzenStrony(klucz,przestrzenie_alternatywne); if(kod_jezyka=="pl"){ link=((kod_projektu!=klucz)?(kod_projektu+":"):"")+link; }else if(kod_projektu=="b"){ link=klucz_jezyka+":"+link; } var artykul_z_kodami=DodatkiSkrypt.Szereg.Styl.PoprawMianoNazwyStrony(link); }else{ console.log(klucz,"TYTAn") klucz=klucz[1]; klucz=klucz.toLowerCase(); if(klucz=="pl"){ do{ link=link.replace(/^([^:]*):/,""); klucz=link.match(/^([^:]*):/); if(klucz){ klucz=klucz[1]; klucz=klucz.toLowerCase(); } }while(klucz=="pl"); } if(link!=(przekierowanie||artykul)){ var projekt=PrzestrzenStrony(klucz,przestrzenie_alternatywne); var artykul_z_kodami=link.replace(/^([^:]*:)(.*)$/g,function(s,a,b){ return DodatkiSkrypt.Szereg.Styl.PoprawMianoNazwyStrony(b); }); }else{ klucz=kod_jezyka; var projekt=PrzestrzenStrony(klucz,przestrzenie_alternatywne); link=kod_projektu+":"+link; var artykul_z_kodami=DodatkiSkrypt.Szereg.Styl.PoprawMianoNazwyStrony(link); } } var projekt=PrzestrzenStrony(klucz,przestrzenie_alternatywne); var href; if(projekt){ var czy_prze=przestrzenie_alternatywne[klucz]; href="//"+((klucz!="b")?(czy_prze?"pl":'en'):"en")+"."+projekt+".org/wiki/"+artykul_z_kodami; }else{ kod_projektu=link.match(/^[\s_]*(?::[\s_]*)?[^\s:]+[\s_]*:[\s_]*([^\s:]+)[\s_]*:/)[1]; var Href=function(klucz,artykul_z_kodami){ var klucz_tabela=PrzestrzenStrony(klucz,przestrzenie_poza); var przed_poza; if(klucz_tabela){ if(typeof(klucz_tabela)=="object"){ klucz_poza=klucz_tabela[0]; przed_poza=klucz_tabela[1]; }else{ klucz_poza=klucz_tabela; } } klucz=PrzestrzenStrony(klucz,przestrzenie_poza,true)||klucz; if(!przestrzenie_poza[klucz]){ href="//"+((klucz!="b")?klucz:"en")+".wikibooks.org/wiki/"+artykul_z_kodami; }else{ href="//"+(przed_poza||klucz)+"."+klucz_poza+".org/wiki/"+artykul_z_kodami; } return href; } if((!kod_projektu)||((klucz!="pl")&&(PrzestrzenStrony(kod_projektu,przestrzenie_alternatywne)))){ href=Href(klucz,artykul_z_kodami); }else{ var projekt=PrzestrzenStrony(kod_projektu,przestrzenie_alternatywne); if((klucz=="pl")&&(projekt)){ artykul_z_kodami=artykul_z_kodami.replace(/^[\s_]*(?::[\s_]*)?[^\s:]+[\s_]*:/g,""); href="//"+((kod_projektu!="b")?klucz:"en")+"."+projekt+".org/wiki/"+artykul_z_kodami; console.log(href,klucz,projekt,"MAMUT123"); }else{ href=Href(klucz,artykul_z_kodami); } } } if(href==tekst.replace(/^https?:/gi,"")){ NumerujLinki(dane,false,tag); yes=true; ++j; }else{ if(CzyPomijanieElementoweSpisuRzeczy(element,pierwsze_dziecko,j,tekst)){ console.log(element.outerHTML,tekst,"ABC1",f); ++f; } if(j<=max_i_begin){++i_begin;console.log(tekst,"A",i_begin);}; }; }else{ if(link.replace(/^https?:\/\//gi,"")==tekst.replace(/^https?:\/\//gi,"")){ NumerujLinki(dane,false,tag); yes=true; ++j; }else{ if(CzyPomijanieElementoweSpisuRzeczy(element,pierwsze_dziecko,j,tekst)){ console.log(element.outerHTML,tekst,"ABC2",f); f++; } if(j<=max_i_begin){++i_begin;console.log(tekst,"B",i_begin);}; } } //}); }else{ var pelna_nazwa_ksiazki=dane["pełna nazwa książki"]; var nazwa_artykulu=dane["nazwa"]; var inna_ksiazka=dane["inna książka"]; /**/ var artykul_edit;var przekierowanie_edit; if(czy_edit){ artykul_edit=artykul.replace(/^([^#]*)#(.*)$/g,"$1"); artykul_edit=artykul_edit.replace(/^(.*)\?\s*\a+[\a\s]*=.*$/g,"$1"); if(przekierowanie){ przekierowanie_edit=przekierowanie.replace(/^([^#]*)#(.*)$/g,"$1"); przekierowanie_edit=przekierowanie_edit.replace(/^(.*)\?\s*\a+[\a\s]*=.*$/g,"$1"); } } /**/ var nazwa=DodatkiSkrypt.Szereg.Napis.UsuwanieBezbarwnychZnakowych(DodatkiSkrypt.Szereg.Napis.UsuwanieApostrofowe(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzezOdpowiednieZnaki(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(nazwa)))); tekst=((czy_poza)?(DodatkiSkrypt.Szereg.Napis.OdWielkiejPierwszaLiteraTekstu(tekst)):tekst); console.log("TYTAN1",spis_tresci,artykul,numer_artykulu,czy_edit,tekst,nazwa_artykulu,pelna_nazwa_ksiazki,czy_poza) if(/^\/\/upload\.wikimedia\.org\/[^\/]+\/[^\/]+\/2\/2a\//g.test(tekst)){ tekst=(tekst.match(/^\/\/upload\.wikimedia\.org\/[^\/]+\/[^\/]+\/2\/2a\/(.*)$/)[1].toString())||tekst; tekst="Media:"+tekst; }else if(/^\/\/commons\.wikimedia\.org\/wiki\/Special\:UploadWizard\?uselang\=pl\&wpDestFile\=/g.test(tekst)){ tekst=(tekst.match(/^\/\/commons\.wikimedia\.org\/wiki\/Special\:UploadWizard\?uselang\=pl\&wpDestFile\=(.*)$/)[1].toString())||tekst; tekst="Media:"+tekst; } console.log(spis_tresci,artykul,numer_artykulu,inna_ksiazka,czy_edit,czy_poza,tekst,"PPPPPPPPPPPPP123",nazwa,nazwa_artykulu,nazwa==nazwa_artykulu) if((spis_tresci==undefined)&&((artykul!="")||(numer_artykulu!="")) &&( ((!inna_ksiazka)&&((!pelna_nazwa_ksiazki)||(!czy_poza))) ?((((!czy_edit)?(pelna_nazwa_ksiazki?artykul:przekierowanie):(pelna_nazwa_ksiazki?artykul_edit:przekierowanie_edit))||przekierowanie||artykul)==tekst) :( ( (pelna_nazwa_ksiazki?(pelna_nazwa_ksiazki+"/"):"") +(((!czy_edit)?(inna_ksiazka?przekierowanie:artykul):(inna_ksiazka?przekierowanie_edit:artykul_edit))||przekierowanie||artykul) )==tekst ) )&&((!nazwa_artykulu)||(nazwa==nazwa_artykulu)) ){ console.log("TYTAN2"); NumerujLinki(dane,false,tag); /**/ $(element).parents('dd, li, span:not(.link), b, i, p').first().DodatkiSkryptEach(function(i,element){ OperacjeNaTestowychElementach(element); }); /**/ $(element).parents('div.toc_ogólnie_spis.toc_artykuł').find('a > span.tocnumber').DodatkiSkryptEach(function(i,element){ var numer_toc=$(element).html(); var numer=numer_rozdzialu+(((numer_rozdzialu!="")&&(numer_artykulu!=""))?("."+numer_artykulu):numer_artykulu); numer=numer+(((numer!="")&&(numer_toc!=""))?("."+numer_toc):numer_toc); $(element).html(numer); }); yes=true; ++j; }else{ if(CzyPomijanieElementoweSpisuRzeczy(element,pierwsze_dziecko,j,tekst)){ ++f; } if(j<=max_i_begin){++i_begin;}; } } }else{ tekst=DodatkiSkrypt.Szereg.Napis.UsuwanieBezbarwnychZnakowych(DodatkiSkrypt.Szereg.Napis.UsuwanieApostrofowe(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzezOdpowiednieZnaki(tekst))); //rozdzial=DodatkiSkrypt.Szereg.Napis.UsuwanieApostrofowe(rozdzial); tekst=RozdzialBezNumeracji(tekst); tekst=DodatkiSkrypt.Szereg.Napis.UsuwanieBezbarwnychZnakowych(tekst); var spis_tresci_temp=spis_tresci-roznica_spis_tresci; console.log(rozdzial,tekst,spis_tresci,numer_artykulu,tag,"TYTAN111111111111"); if((rozdzial==tekst)&&((artykul=="")&&(numer_artykulu==""))&&(tag)&&(spis_tresci!=undefined)&&(((spis_tresci_temp>0)&&((((tag=="DIV")&&(($(element).hasClass('mw-heading'))||($(element).parent().hasClass('template-center'))||($(element).hasClass('center'))))/*||($(element).parents('.center,center').length>0)*/||(tag=="CENTER"))||((tag=="H1")||(tag=="H2")||(tag=="H3")||(tag=="H4")||(tag=="H5")||(tag=="H6"))))||((spis_tresci<0)&&(/*($(element).parents('li, dd').length>0)||*/(tag=="DD")||(tag=="LI")||(tag=="DT")))||((spis_tresci==0)&&(/*($(element).parents('p,i,b').length>0)||*/(tag=="P")||(tag=="I")||(tag=="B")||(tag=="CENTER")||(tag=="TD")||(tag=="TH")||(tag=="CAPTION"))))){ NumerujLinki(dane,true,tag); console.log(element,tekst,"GGG1") $(element).DodatkiSkryptEach(function(i,element){ OperacjeNaTestowychElementach(element); }); yes=true; ++j; }else{ yes=false; var warunek=((tag)&&((((((tag=="DIV")&&(($(element).hasClass('mw-heading'))||($(element).parent().hasClass('template-center'))||($(element).hasClass('center'))))/*||($(element).parents('.center,center').length>0)*/||(tag=="CENTER"))||((tag=="H1")||(tag=="H2")||(tag=="H3")||(tag=="H4")||(tag=="H5")||(tag=="H6"))))||((spis_tresci<0)&&(/*($(element).parents('li, dd').length>0)||*/(tag=="DD")||(tag=="LI")||(tag=="DT")))||((/*($(element).parents('p,i,b').length>0)||*/(tag=="P")||(tag=="I")||(tag=="B")||(tag=="CENTER")||(tag=="TD")||(tag=="TH")||(tag=="CAPTION"))))); if(warunek){ if(CzyPomijanieElementoweSpisuRzeczy(element,pierwsze_dziecko,j,tekst)){ console.log(element.outerHTML,tekst,"ABC4",f,j,tag,element,rozdzial); ++f; } } if((tag)&&((tag!="P")||((tag=="P")&&(!pierwsze_dziecko)))&&(j<=max_i_begin)){++i_begin;console.log(tekst,tag,"F",i_begin)}; } } } var FunkcjaZnacznikaP=function(element,czy_tag){ var str_p=$(element).parents("P").first(); if(str_p.length>0){ var klon=document.createElement('div'); var czy_w_nim_a=false; var pierwsze_dziecko=undefined; for (const element_dzieci of str_p[0].childNodes){ var nowy_tag=(element_dzieci.tagName)?(element_dzieci.tagName.toUpperCase()):null; if(nowy_tag!=="BR"){ if(!pierwsze_dziecko){ pierwsze_dziecko=element_dzieci; } if((element_dzieci==element)||($(element_dzieci).find(element).length>0)){czy_w_nim_a=true;} $(klon).append(element_dzieci.cloneNode(true)); }else{ if(czy_w_nim_a){ czy_w_nim_a=undefined; if(!$(klon.firstChild).hasClass('mw-numbering-main-page')){ var tekst_rozdzialu=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweSkryptoweOrazNieSkryptoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML($(klon).html()))); var element_rozdzialu=str_p[0]; //if(j<=max_i_begin){++i_begin;}; Numerowanie(element_rozdzialu,"P",tekst_rozdzialu,pierwsze_dziecko); break; } } pierwsze_dziecko=undefined; klon=document.createElement('div'); } } if(czy_w_nim_a){ if(!$(klon.firstChild).hasClass('mw-numbering-main-page')){ var tekst_rozdzialu=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweSkryptoweOrazNieSkryptoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML($(klon).html()))); var element_rozdzialu=str_p[0]; //if(j<=max_i_begin){++i_begin;}; Numerowanie(element_rozdzialu,"P",tekst_rozdzialu,pierwsze_dziecko); } } } } var bookname=DodatkiSkrypt.Nazwy.BOOKNAME(((aktualna_strona)?(aktualna_strona):(DodatkiSkrypt.Info.page.fullname))); var namespace=DodatkiSkrypt.Nazwy.NAMESPACE(((aktualna_strona)?(aktualna_strona):(DodatkiSkrypt.Info.page.fullname))); bookname=DodatkiSkrypt.Szereg.Kodowanie.DecodeWiki(bookname); namespace=DodatkiSkrypt.Szereg.Kodowanie.DecodeWiki(namespace); $(id_numerowanie).DodatkiSkryptEach(function(i,element){ var iterator=DodatkiSkrypt.Szereg.Html.IteratorPotomkowyPoElemencieHtml(element); while(true){ var element=iterator(); if( (element) &&(((element.tagName)&&($(element).filter('style, link, script, noscript').length>0)) ||($(element).closest('style, link, script, noscript').length>0)) ){continue;} k++; console.log(k,p,"TYTAN",j,i_begin,max_i_begin,element); if(k<p){continue;}; if(!element){break;}; (function(element){ var tag_name=element.tagName; var tag; if(tag_name){tag=tag_name.toUpperCase();}else{tag=null;} var tekst; if(element.tagName){ var tag_element=element.tagName.toUpperCase() } if(!tag){ console.log("SS2",element); FunkcjaZnacznikaP(element,false); if(j<=max_i_begin){++i_begin;}; }else if( ((tag=="DIV")&&($(element).hasClass('mw-heading'))) ||((tag=="H1")||(tag=="H2")||(tag=="H3")||(tag=="H4")||(tag=="H5")||(tag=="H6")) ){ var div=document.createElement('div'); $(div).html($(element).html()); $(div).find('a.gadget-replylinks-reply').remove(); $(div).find('.numeracja, .mw-numbering-main-page, .mw-editsection').remove(); tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweSkryptoweOrazNieSkryptoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML($(div).html()))); Numerowanie(element,tag,tekst); }else if((tag=="DIV")&&(($(element).hasClass('center'))|($(element).parent().hasClass('template-center')))){ var div=document.createElement('div'); $(div).html($(element).html()); $(div).find('a.gadget-replylinks-reply').remove(); tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweSkryptoweOrazNieSkryptoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML($(div).html()))); Numerowanie(element,tag,tekst); }else if((tag=="TD")||(tag=="TH")||(tag=="CAPTION")){ var div=document.createElement('div'); $(div).html($(element).html()); $(div).find('a.gadget-replylinks-reply').remove(); tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweSkryptoweOrazNieSkryptoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML($(div).html()))); Numerowanie(element,tag,tekst); }else if((tag=="P")||(((tag=="B")||(tag=="I"))&&($(element).find('br').length==0))){ var div=document.createElement('div' ); $(div).html($(element).html()); $(div).find('a.gadget-replylinks-reply').remove(); tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweSkryptoweOrazNieSkryptoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML($(div).html()))); console.log("SS1",element); Numerowanie(element,tag,tekst); }else if((tag=="DD")||(tag=="DT")){ var div=document.createElement('div'); $(div).html($(element).html()); $(div).find('a.gadget-replylinks-reply').remove(); //var czy_li=false; //for(var begin=div.firstChild;begin!=null;begin=begin.nextSibling){ // if(begin.tagName!=null){ // var tag_dziecko=begin.tagName.toUpperCase(); // if((!czy_li)&&((tag_dziecko=="DL")||(tag_dziecko=="DD"))){ // czy_li=true; // } // if(czy_li){ // div.removeChild(begin); // } // } //}*/ if($(div).find("ul, ol, dl").length==0){ tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweSkryptoweOrazNieSkryptoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML($(div).html()))); Numerowanie(element,tag,tekst); } }else if(tag=="LI"){ var div=document.createElement('div'); $(div).html($(element).html()); $(div).find('a.gadget-replylinks-reply').remove(); var czy_li=false; for(var begin=div.firstChild;begin!=null;begin=begin.nextSibling){ if(begin.tagName!=null){ var tag_name=begin.tagName.toUpperCase(); if((!czy_li)&&((tag_name=="UL")||(tag_name=="OL"))){ czy_li=true; } if(czy_li){ div.removeChild(begin); } } } tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweSkryptoweOrazNieSkryptoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML($(div).html()))); if(!tekst){if(j<=max_i_begin){++i_begin;};return;} Numerowanie(element,tag,tekst); }else if(tag=="CENTER"){ var div=document.createElement('div') $(div).html($(element).html()); $(div).find('a.gadget-replylinks-reply').remove(); tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweSkryptoweOrazNieSkryptoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML($(div).html()))); if(!tekst){if(j<=max_i_begin){++i_begin;};return;} Numerowanie(element,tag,tekst); }else if(tag=="A"){ FunkcjaZnacznikaP(element,true); var editsection=$(element).parents('.mw-editsection').parents('.mw-heading'); if(editsection.length>0){if(j<=max_i_begin){++i_begin;};return;} if($(element).hasClass('a.external')){if(j<=max_i_begin){++i_begin;};return;}; var div=document.createElement('div'); $(div).html(element.outerHTML); $(div).find('a.gadget-replylinks-reply').remove(); var element_a=$(div).children('a').get(0); if(!element_a){if(j<=max_i_begin){++i_begin;};return;}; var href=element_a.getAttribute("href"); if(href=="#"){if(j<=max_i_begin){++i_begin;};return;} if(!href){href=""}; if(!$(element_a).hasClass('external')){ tab_href=DodatkiSkrypt.Szereg.Napis.UrojoneStrony(href); href=tab_href.href; var czy_edit=tab_href.edit; if((namespace=="")||(namespace=="Wikijunior")){ if(/^([^\/]*)(\/)(.*)$/g.test(href)){ href=href.replace(/^([^\/]*)(\/)(.*)$/g,function(s,s1,s2,s3){ if(s1==((namespace!="")?(namespace+":"+bookname):bookname)){ return s3; } return s; }); }else{ if(((namespace!="")?(namespace+":"+bookname):bookname)==href){ href=""; } } console.log(href,"LLLLLLLLLLLLL"); }else if(namespace=="Wikibooks"){ href=href.replace(/^([Ww][Ii][Kk][Ii][Bb][Oo][Oo][Kk][Ss]:[Bb]rudnopis\/[^\/]*\/[^\/]*)\/(.*)$/g,function(s,s1,s2){ if(s1==((namespace!="")?(namespace+":"+bookname):bookname)){ return s2; } return s; }); href=href.replace(/^([Ww][Ii][Kk][Ii][Bb][Oo][Oo][Kk][Ss]:[Bb]rudnopis\/[^\/]*\/[^\/]*)$/g,function(s,s1){ if(s1==((namespace!="")?(namespace+":"+bookname):bookname)){ return ""; } return s; }); }else if(namespace=="Wikipedysta"){ href=href.replace(/^([^\/]*\/[^\/]*)(\/)(.*)$/g,function(s,s1,s2,s3){ if(s1==((namespace!="")?(namespace+":"+bookname):bookname)){ return s3; } return s; }); href=href.replace(/^([^\/]*\/[^\/]*)$/g,function(s,s1){ if(s1==((namespace!="")?(namespace+":"+bookname):bookname)){ return ""; } return s; }); } tekst=href; }else{ tekst=DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(href,false); } var nazwa=$(element).html(); Numerowanie(element,tag,tekst,undefined,nazwa,czy_edit); }else{ if(j<=max_i_begin){++i_begin;}; return; }; })(element); } }); return [f,i_begin,j-1]; }; var liczba_json=LiczbaElementowaTablicowaJson(); var liczba_spis_tresci=0; var UsuwaniePozostalosciSpisTresci=function(){ var css_id=$(id_numerowanie).find('.mw-numbering-main-page'); css_id=DodatkiSkrypt.Scribunto.StronicowyParser.FiltrujElementyRodzicaAleNiePod(id_numerowanie,css_id,false); var strona_start_fun=new DodatkiSkrypt.Strona.CzyElementNodeJestPodElementemNode(id_numerowanie); css_id=$(css_id).filter(function(i,element){ if(!strona_start_fun.CzyJestElementemPotomka(element)){ return true; } return false; }); $(css_id).remove(); $(id_numerowanie).find('.css_numersubst').removeClass('css_numersubst'); } if(liczba_json>0){ for(;;){ var [f,i_begin,j]=FunctionNumeracja(liczba_spis_tresci); console.log(f,i_begin,j,"Licznik pominień",liczba_json); return Promise.resolve(); if(j==liczba_json){ if(f>0){ liczba_spis_tresci+=i_begin+1; UsuwaniePozostalosciSpisTresci(); }else{ return Promise.resolve(); }; }else{ UsuwaniePozostalosciSpisTresci(); return Promise.reject(); } } } return Promise.reject(); } this.UstawianieNumeracjiSpisuRzeczy=function(dane){ var firstheading=$('#firstHeading'); if($(firstheading).children("#mw-article-numbering").first().length==0){ var span=document.createElement('span'); $(span).html(dane+".&nbsp;"); span.setAttribute("id","mw-article-numbering"); $(firstheading).contents().first().before(span); } } this.NumerujRozdzialyArtykulu=function(element,artykul,aktualna_strona){ return promise_numerowanie.DodatkiSkryptThen(function(data){ var gadget_numerowanie=data[0];var gadget_numerowanie_normalne=data[1];var gadget_numerowanie_asynchroniczne=data[2]; if(!gadget_numerowanie){return;} artykul=(artykul)?artykul:DodatkiSkrypt.Info.page.articlename; aktualna_strona=(aktualna_strona)?aktualna_strona:DodatkiSkrypt.Info.page.fullname var id_numerowanie=DodatkiSkrypt.Szereg.Styl.ElementRodzic(element,true).first(); if(!gadget_numerowanie_normalne){ var promise=UstalanieZmiennychNumerowanie(aktualna_strona,id_numerowanie,function(data,aktualna_strona,id_numerowanie){ return this_zmienna.PreparujStronyJednostek(id_numerowanie,artykul,aktualna_strona,true).DodatkiSkryptThen(function([dane,czy_strona_zbiorcza_naprawde]){ if(czy_strona_zbiorcza_naprawde){ if((!dane) ||(($(id_numerowanie).hasClass('.rodzic_szablon_subst_js')) ||($(id_numerowanie).hasClass('.szablon_subst_js')) ||($(id_numerowanie).parents('.rodzic_szablon_subst_js, .szablon_subst_js').length>0) ) ){return Promise.resolve();} this_zmienna.UstawianieNumeracjiSpisuRzeczy(dane); return Promise.resolve(); }else{ return Promise.resolve(); } }); }); return promise; }else{ return this_zmienna.NumerowanieNaglowkowStron(id_numerowanie,""); } }); } this.PreparujStronyJednostek=function(id_numerowanie,artykul,aktualna_strona,czy_bez_prefix){ aktualna_strona=aktualna_strona||DodatkiSkrypt.Info.page.fullbookname; var namespace=DodatkiSkrypt.Nazwy.NAMESPACE(aktualna_strona); var namespace=DodatkiSkrypt.Nazwy.Np(namespace,{"jaka":"kanoniczna",}); if((namespace!="")&&(namespace!="Wikijunior")){ if((namespace=="User")|(namespace=="Wikibooks")){ var namespacebook=DodatkiSkrypt.Nazwy.BOOKSPACENAME(aktualna_strona); if(namespacebook==""){return this_zmienna.NumerowanieNaglowkowStron(id_numerowanie,"").DodatkiSkryptThen(function(){return ["",false]});}; }else if(/\stalk$/g.test(namespace)){ return this_zmienna.NumerowanieNaglowkowStron(id_numerowanie,"").DodatkiSkryptThen(function(){return ["",false]});; }else{ return this_zmienna.NumerowanieNaglowkowStron(id_numerowanie,"").DodatkiSkryptThen(function(){return ["",false]}); } } var artykul_parametr=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(artykul).replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "); var aktualna_strona_rozwazana=DodatkiSkrypt.Nazwy.FULLPAGENAME(aktualna_strona); var aktualna_strona_parametr=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(aktualna_strona_rozwazana); var czy_strona_numerowac="{{#invoke:StronicowyParser|CzyStronęNumerować|"+aktualna_strona_parametr+"}}"; var pelna_nazwa_artykulu="{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}"; var pelna_nazwa_ksiazki="{{ArtykułSubst|pobierz pełną nazwę książki=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}"; var przekierowanie_strony="{{#invoke:Techniczne|PrzekierowanieDoStrony|{{msg:PEŁNANAZWAKSIĄŻKI|"+aktualna_strona_parametr+"}}|wyspecjalizowana=tak}}"; var numer_naglowka="{{PobierzNumerNagłówka|{{msg:NAZWAARTYKUŁUKSIĄŻKI|bez dodatkowych sprawdzeń=tak}}|bez kategorii stronicowych=tak}}"; var numer_artykulu="{{PobierzNumerArtykułu|"+artykul_parametr+"|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki={{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}|bez kategorii stronicowych=tak}}"; var czy_strona_subst="{{#invoke:StronicowyParser|CzyStronaSubst}}"; var czy_spis_tresci="{{#invoke:StronicowyParser|CzySpisTreści|artykuł="+artykul_parametr+"|wyspecjalizowana=tak}}"; var dane_ksiazki="{{#tag:nowiki|{{#invoke:Techniczne|EncodeParametr|{{#invoke:StronicowyParser|PobierzDaneKsiążki|spis="+artykul_parametr+"|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki={{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}|wyspecjalizowana=tak}}}}}}"; var nazwa_przestrzeni_ksiazki="{{NAZWAPRZESTRZENIKSIĄŻKI|bez dodatkowych sprawdzeń=tak}}"; var pelna_nazwa_ksiazki_artykulu="{{msg:PEŁNANAZWAKSIĄŻKI|"+aktualna_strona_parametr+"}}"; var promise=DodatkiSkrypt.Scribunto.ApiLuaParse( '{{#if:'+czy_strona_numerowac+ '|{{#if:'+ '{{#ifeq:'+pelna_nazwa_artykulu+'|'+aktualna_strona_parametr+'|tak|'+ '{{#ifeq:'+pelna_nazwa_ksiazki+'|'+ '{{#if:'+przekierowanie_strony+ '|'+przekierowanie_strony+ '|'+pelna_nazwa_ksiazki_artykulu+ '}}|tak'+ '}}'+ '}}'+ '|{{#if:'+czy_strona_subst+ '|{{#switch:{{NAMESPACE}}'+ '||Wikijunior='+numer_naglowka+ '|{{Ns:User}}|{{Ns:Project}}={{#if:'+nazwa_przestrzeni_ksiazki+'|'+numer_naglowka+'}}'+ '}}'+ '|{{#if:'+czy_spis_tresci+ '|{{#switch:{{NAMESPACE}}'+ '||Wikijunior='+dane_ksiazki+ '|{{Ns:User}}|{{Ns:Project}}={{#if:'+nazwa_przestrzeni_ksiazki+'|'+dane_ksiazki+'}}'+ '}}'+ '|{{#switch:{{NAMESPACE}}'+ '||Wikijunior='+numer_artykulu+ '|{{Ns:User}}|{{Ns:Project}}={{#if:'+nazwa_przestrzeni_ksiazki+'|'+numer_artykulu+'}}'+ '}}'+ '}}'+ '}}'+ '|STRONASTART'+ '}}'+ '|nie'+ '}}',aktualna_strona_rozwazana,null,true,null,null,null,null,null,gadget_numerowanie_zapisz_dane_na_kliencie).DodatkiSkryptThen(function(data){ var dane=data.parse.text["*"]; if(dane==null){return ["",false];}else if(dane=="nie"){return ["",false];} /**/ if(dane!="STRONASTART"){ if((dane!=null)&&(dane!="")&&(dane!="(błąd)")){ if((!/^[\[].*[\]]$/g.test(dane))&&(!/^[{].*[}]$/g.test(dane))){ return this_zmienna.NumerowanieNaglowkowStron(id_numerowanie,dane,czy_bez_prefix).DodatkiSkryptThen(function(){ var biezaca_strona_rozwazaca=DodatkiSkrypt.Nazwy.FULLPAGENAME(DodatkiSkrypt.Info.page.fullname); var czy_zbiorcza_naprawde=(biezaca_strona_rozwazaca==aktualna_strona_rozwazana); return [dane,czy_zbiorcza_naprawde]; }); }else{ dane=DodatkiSkrypt.Szereg.Tekst.Decode(dane); var json=JSON.parse(dane); if(json){ console.log(json,"SYSAS"); var artykul_spis_tresci=DodatkiSkrypt.Nazwy.ARTICLENAME(aktualna_strona); var spis="Spis treści - "+artykul_spis_tresci; var tab_spis=json[spis]; var numer_spisu_tresci; if(tab_spis){ for(var p in tab_spis){ var dane_spisu=tab_spis[p][artykul_spis_tresci]; if(dane_spisu){ numer_spisu_tresci=p; break; } } } if(numer_spisu_tresci){ this_zmienna.UstawianieNumeracjiSpisuRzeczy(numer_spisu_tresci); } return this_zmienna.NumerowanieStronGłównychPodręcznikowWedlugZebranychDanych(id_numerowanie,json,aktualna_strona).DodatkiSkryptThen(function(){ return this_zmienna.NumerowanieNaglowkowStron(id_numerowanie,""); }).DodatkiSkryptCatch(function(){ return this_zmienna.NumerowanieNaglowkowStron(id_numerowanie,""); }).DodatkiSkryptThen(function(){return ["",false]}); }else{ return this_zmienna.NumerowanieNaglowkowStron(id_numerowanie,"").DodatkiSkryptThen(function(){return ["",false]}); } } }else{ return this_zmienna.NumerowanieNaglowkowStron(id_numerowanie,"").DodatkiSkryptThen(function(){return ["",false]}); } }else{ return this_zmienna.NumerowanieNaglowkowStron(id_numerowanie,"").DodatkiSkryptThen(function(){return ["",false]}); } }).DodatkiSkryptCatch(function(error){ return this_zmienna.NumerowanieNaglowkowStron(id_numerowanie,"").DodatkiSkryptThen(function(){return ["",false]}); }); return promise; } } DymkiSubst.GadgetDymkiSubst=function(){ /**/ var dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych=undefined; var dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych=undefined; var dymkisubst_dymki_asynchroniczne_na_stronach_niezbiorczych=undefined; /**/ var dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych=undefined; var dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych=undefined; var dymkisubst_dymki_asynchroniczne_na_stronach_zbiorczych=undefined; /**/ var dymkisubst_dymki_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej=undefined; var dymkisubst_dymki_zapisz_dane_na_kliencie=undefined; /**/ if((window.gConfig!==undefined)&&(window.gConfig.register!==undefined)&&(window.gConfig.get!==undefined)){ if(!czy_nie_gconfig_dymkisubst){ czy_nie_gconfig_dymkisubst=true; mw.messages.set({ 'DymkiSubst-name': 'Dymki nad linkami inteligentymi', 'DymkiSubst-description-page': 'Wikibooks:StronicowyParser', 'DymkiSubst-dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych' : "Ustawia dymki, nad linkami, dla linków inteligentnych na stronach niezbiorczych.", 'DymkiSubst-dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych' : "Ustawia dymki, nad linkami, dla linków nieinteligentnych na stronach niezbiorczych.", 'DymkiSubst-dymki_asynchroniczne_na_stronach_niezbiorczych' : "Sprawdza, czy na stronie niezbiorczej, występuje strona zbiorcza, czy nie, i na podstawie tego ustawia odpowiednie parametry.", 'DymkiSubst-dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych' : "Ustawia dymki, nad linkami, dla linków inteligentnych na stronach zbiorczych.", 'DymkiSubst-dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych' : "Ustawia dymki, nad linkami, dla linków nieinteligentnych na stronach zbiorczych.", 'DymkiSubst-dymki_asynchroniczne_na_stronach_zbiorczych' : "Sprawdza, czy na stronie zbiorczej, występuje strona zbiorcza, czy nie, i na podstawie tego ustawia odpowiednie parametry.", 'DymkiSubst-dymki_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej': 'Uruchom tylko dla stron ładowanych na głównej stronie zbiorczej', 'DymkiSubst-dymki_zapisz_dane_na_kliencie': 'Zapisuje dane, co do dymków na kliencie, ściagniete z serwera', }); gConfig.register('DymkiSubst', {name: mw.msg('DymkiSubst-name'), descriptionPage: mw.msg('DymkiSubst-description-page')}, [ { name: 'dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych', desc: mw.msg('DymkiSubst-dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych'), type: 'boolean', deflt: true, legacy: [window, 'wb_dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych'] }, { name: 'dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych', desc: mw.msg('DymkiSubst-dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych'), type: 'boolean', deflt: true, legacy: [window, 'wb_dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych'] }, { name: 'dymki_asynchroniczne_na_stronach_niezbiorczych', desc: mw.msg('DymkiSubst-dymki_asynchroniczne_na_stronach_niezbiorczych'), type: 'boolean', deflt: true, legacy: [window, 'wb_dymkisubst_dymki_asynchroniczne_na_stronach_niezbiorczych'] }, { name: 'dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych', desc: mw.msg('DymkiSubst-dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych'), type: 'boolean', deflt: true, legacy: [window, 'wb_dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych'] }, { name: 'dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych', desc: mw.msg('DymkiSubst-dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych'), type: 'boolean', deflt: true, legacy: [window, 'wb_dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych'] }, { name: 'dymki_asynchroniczne_na_stronach_zbiorczych', desc: mw.msg('DymkiSubst-dymki_asynchroniczne_na_stronach_zbiorczych'), type: 'boolean', deflt: true, legacy: [window, 'wb_dymkisubst_dymki_asynchroniczne_na_stronach_zbiorczych'] }, { name: 'dymki_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej', desc: mw.msg('DymkiSubst-dymki_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej'), type: 'boolean', deflt: true, legacy: [window, 'wb_dymkisubst_dymki_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej'] }, { name: 'dymki_zapisz_dane_na_kliencie', desc: mw.msg('DymkiSubst-dymki_zapisz_dane_na_kliencie'), type: 'boolean', deflt: false, legacy: [window, 'wb_dymkisubst_dymki_zapisz_dane_na_kliencie'] }, ]); } dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych = (gConfig.get('DymkiSubst', 'dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych')==true); dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych = (gConfig.get('DymkiSubst', 'dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych')==true); dymkisubst_dymki_asynchroniczne_na_stronach_niezbiorczych = (gConfig.get('DymkiSubst', 'dymki_asynchroniczne_na_stronach_niezbiorczych')==true); /**/ dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych = (gConfig.get('DymkiSubst', 'dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych')==true); dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych = (gConfig.get('DymkiSubst', 'dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych')==true); dymkisubst_dymki_asynchroniczne_na_stronach_zbiorczych = (gConfig.get('DymkiSubst', 'dymki_asynchroniczne_na_stronach_niezbiorczych')==true); /**/ dymkisubst_dymki_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej = (gConfig.get('DymkiSubst', 'dymki_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej')==true); dymkisubst_dymki_zapisz_dane_na_kliencie=(gConfig.get('DymkiSubst', 'dymki_zapisz_dane_na_kliencie')==true); } dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych=((dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych!==undefined)?dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych:true); dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych=((dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych!==undefined)?dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych:true); dymkisubst_dymki_asynchroniczne_na_stronach_niezbiorczych=((dymkisubst_dymki_asynchroniczne_na_stronach_niezbiorczych!==undefined)?dymkisubst_dymki_asynchroniczne_na_stronach_niezbiorczych:true); /**/ dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych=((dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych!==undefined)?dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych:true); dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych=((dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych!==undefined)?dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych:true); dymkisubst_dymki_asynchroniczne_na_stronach_zbiorczych=((dymkisubst_dymki_asynchroniczne_na_stronach_zbiorczych!==undefined)?dymkisubst_dymki_asynchroniczne_na_stronach_zbiorczych:true); /**/ dymkisubst_dymki_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej=((dymkisubst_dymki_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej!==undefined)?dymkisubst_dymki_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej:true); dymkisubst_dymki_zapisz_dane_na_kliencie=((dymkisubst_dymki_zapisz_dane_na_kliencie!==undefined)?dymkisubst_dymki_zapisz_dane_na_kliencie:false); /**/ this.KodKomunikatuDymku=function(kod){ var tab_kody={ "su":true, "sun":true, "iw":true, "inw":true, "iwew":true, "inwew":true, "iew":true, "inew":true, "niw":true, "ninw":true, "niew":true, "ninew":true, "was":true, "wasew":true, "wash":true, "washew":true, "wasn":true, "wasnew":true, "ipw":true, "inpw":true, "dwni":true, "sup":true, "sunp":true, "iwp":true, "inwp":true, "iwewp":true, "inwewp":true, "iewp":true, "inewp":true, "niwp":true, "ninwp":true, "niewp":true, "ninewp":true, "wasp":true, "wasewp":true, "washp":true, "washewp":true, "wasnp":true, "wasnewp":true, "ipwp":true, "inpwp":true, "dwnip":true, } return tab_kody[kod]; } this.UstalanieZmiennychTworzeniaDymkowego=function(aktualna_strona,element){ var funkcja=function(){ return DodatkiSkrypt.Scribunto.StronicowyParser.CzyPrawdopodobnieStronaZbiorcza(aktualna_strona,element).DodatkiSkryptThen(function(wikikod){ if(wikikod){ var dymkisubst_dymki_nad_linkami_inteligentnymi=dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych; var dymkisubst_dymki_nad_linkami_nieinteligentnymi=dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych; var dymkisubst_dymki_asynchroniczne=dymkisubst_dymki_asynchroniczne_na_stronach_zbiorczych; }else{ var dymkisubst_dymki_nad_linkami_inteligentnymi=dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych; var dymkisubst_dymki_nad_linkami_nieinteligentnymi=dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych; var dymkisubst_dymki_asynchroniczne=dymkisubst_dymki_asynchroniczne_na_stronach_niezbiorczych; } return Promise.resolve([dymkisubst_dymki_nad_linkami_inteligentnymi,dymkisubst_dymki_nad_linkami_nieinteligentnymi,dymkisubst_dymki_asynchroniczne]); }); } if(dymkisubst_dymki_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej){ return DodatkiSkrypt.Scribunto.StronicowyParser.CzyPrawdopodobnieStronaZbiorcza().DodatkiSkryptThen(function(data){ if((data)&&(data!="")){ return funkcja(); }else{ return Promise.resolve([false,false,false]); } }); }else{ return funkcja(); } }; var promise_dymki=this.UstalanieZmiennychTworzeniaDymkowego(); var tab_promise_dymki=new Array(); tab_promise_dymki.push(promise_dymki); var this_zmienna=this; //var tab_promise=new Array(); //this.CzekanieNaZwolnienieWszystkichKorutynWTabeliObietnicDymkiSubst=function(){ // return DodatkiSkrypt.CzekanieNaZwolnienieWszystkichKorutynWTabeliObietnic(tab_promise); //} var dymki_muteks=new DodatkiSkrypt.Muteks(); var dymki_projektowe_muteks=new DodatkiSkrypt.Muteks(); var UstalanieZmiennychDymkowe=function(aktualna_strona,element,funkcja){ var dymkisubst_dymki_nad_linkami_inteligentnymi;var dymkisubst_dymki_nad_linkami_nieinteligentnymi;var dymkisubst_dymki_asynchroniczne; return promise_dymki.DodatkiSkryptThen(function(data){ dymkisubst_dymki_nad_linkami_inteligentnymi=data[0];dymkisubst_dymki_nad_linkami_nieinteligentnymi=data[1];dymkisubst_dymki_asynchroniczne=data[2]; if(dymkisubst_dymki_asynchroniczne){ if(aktualna_strona){ tab_promise_dymki.push(this_zmienna.UstalanieZmiennychTworzeniaDymkowego(aktualna_strona,element)); promise_dymki=tab_promise_dymki.at(-1); return promise_dymki; } } return data; }).DodatkiSkryptThen(function(data){ return funkcja(data,aktualna_strona,element); }).DodatkiSkryptFinally(function(data){ if(dymkisubst_dymki_asynchroniczne){ if(aktualna_strona){ tab_promise_dymki.pop(); promise_dymki=tab_promise_dymki.at(-1); } } return data; }); } this.lineHeight=function(id){ var lineheight=window.getComputedStyle(id, null).lineHeight; return parseFloat(lineheight); } /*Funkcja do wyświetlania komunikatów do [[Szablon:Link wewnętrzny]]*/ this.WyswietlKomunikatInfoKombajn=function(id,element_id,wysokosclinii,window_scrollX,window_scrollY,event_clientX,event_clientY,element_id_top,element_id_bottom,komunikat){ var body=document.querySelector('body'); if(body==null){return;} var bodycontent = document.querySelector('#bodyContent'); if(bodycontent==null){return;} this.UsunKomunikatInfo(); var div=document.createElement('div'); div.position="absolute"; //var element_id=id.getBoundingClientRect(); var left_real=event_clientX+window_scrollX-30; var top_real=element_id_bottom+window_scrollY; if(top_real<=0){return;} //var wysokosclinii=this.lineHeight(id); if((wysokosclinii)||(isNaN(wysokosclinii))||(wysokosclinii<=0)){return;}; var eY=event_clientY+window_scrollY; for (var i=0;;++i){ var pomiedzy_gornym_a_dolnym_polozeniem_pod=i*wysokosclinii; var pomiedzy_gornym_a_dolnym_polozeniem_nad=(i+1)*wysokosclinii; var top_real_dolny=top_real-pomiedzy_gornym_a_dolnym_polozeniem_pod; var top_real_gorny=top_real-pomiedzy_gornym_a_dolnym_polozeniem_nad; if((top_real_dolny<0)||(top_real_gorny<0)){return;}; if(pomiedzy_gornym_a_dolnym_polozeniem_pod>id.offsetHeight){ top_real=top_real_dolny; break; } if((eY<=top_real_dolny)&&(eY>=top_real_gorny)){ top_real=top_real_gorny; break; } if((pomiedzy_gornym_a_dolnym_polozeniem_pod>id.offsetHeight)&&(pomiedzy_gornym_a_dolnym_polozeniem_nad>id.offsetHeight)){return;}; } var left_komunukat_main=parseInt(left_real); var inset=5; div.style.left=(left_komunukat_main>5)?((parseInt(left_real)).toString()+'px'):(inset+"px"); div.classList.add("dymkisubst_link_wewnętrzny_komunikatów"); div.setAttribute("id","dymkisubst_id_animacja_komunikatów"); $(div).html(komunikat); var div_element=$(body).DodatkiSkryptAppend(div).get(0); var div_komunikat=$(div_element).children().first(); var width=$(div_komunikat).get(0).offsetWidth; var width_body=(window.visualViewport)?window.visualViewport["width"]:window.innerWidth; var comp=window.getComputedStyle($(div_element).get(0),null); var paddingleft=parseFloat(comp.getPropertyValue("padding-left")); var paddingright=parseFloat(comp.getPropertyValue("padding-right")); if(width+10>width_body){ $(div_komunikat).css('width',(width_body-inset*2-paddingleft-paddingright)+"px"); } var top=parseInt(top_real-div_element.offsetHeight-3); if(top<0){top=0;} div.style.top=top.toString()+'px'; var rectbodycontent=bodycontent.getBoundingClientRect(); var leftbodycontent=rectbodycontent.left+window.scrollX; var widthbodycontent=bodycontent.offsetWidth; var id_komunikat_right=left_real+div_element.offsetWidth; var marginesRight=1; if(widthbodycontent+leftbodycontent<id_komunikat_right+marginesRight){ var roznica_offsetow=id_komunikat_right-widthbodycontent-leftbodycontent; var left_div_element=parseInt(left_real-(roznica_offsetow)-marginesRight); div_element.style.left=(left_div_element>5)?((left_div_element).toString()+'px'):(inset+"px"); } var div_element_rect=div_element.getBoundingClientRect(); var left_real_id=event_clientX+window_scrollX; var left_real_div=div_element_rect.left+window_scrollX; var roz_left=left_real_id-left_real_div; var div_el=document.createElement('div'); div_el.setAttribute('class',"dymkisubst_link_wewnętrzny_komunikatów_wskaźnik"); var div_el_dod=$(div_element).DodatkiSkryptAppend(div_el); var left_komunikat=roz_left-9; $(div_el_dod).css('left',(left_komunikat>0)?(left_komunikat+'px'):0); } this.UsunKomunikatInfo=function(id){ var body=document.querySelector('body'); if(body==null){return;} var id_animation=$('#dymkisubst_id_animacja_komunikatów'); if(id_animation!==null){ $(id_animation).remove(); if(id){$(id).data('dymkisubst_poprawnie',true);} }else{ var link_wewnetrzny_komunikatow=$('.dymkisubst_link_wewnętrzny_komunikatów'); if((link_wewnetrzny_komunikatow!==null)&&(link_wewnetrzny_komunikatow.length>0)){ $(link_wewnetrzny_komunikatow).remove(); if(id){$(id).data('dymkisubst_poprawnie',true);} }else{ if(id){$(id).data('dymkisubst_poprawnie',false);} } } } this.PobierzKodElementuRodzicaA=function(element_a){ var span_element=$(element_a).parent().filter('span.link'); if($(span_element).length>0){ var parent_element_a=$(span_element).get(0); }else{ var parent_element_a=$(element_a).filter('a.link').get(0); } if(parent_element_a==null){return null;}; var element_link=parent_element_a.classList; if((element_link!==null)&&(element_link.length>0)){ for(var a=0;a<element_link.length;++a){ var kod=element_link[a]; if(kod!="link"){ var czy_tak=this.KodKomunikatuDymku(kod); if(czy_tak){ return kod; } } } } return null; } var ApiAbort=function(id,funkcja){ return function(api){ var api_fun=function(){ var id=this; $(id).off("mouseout",api_fun); $(id).data('dymkisubst_poprawnie',false); api.abort(); DymkiSubst.gadgetdymkisubst.UsunKomunikatInfo(id); if(funkcja){funkcja(id);}; } $(id).off("mouseout",api_fun).on("mouseout",api_fun); return function(id){ $(id).off("mouseout",api_fun); }; } } this.WyswietlKomunikatInfo=function(id,element_id,wysokosclinii,window_scrollX,window_scrollY,event_clientX,event_clientY,element_id_top,element_id_bottom){ var tab_promise=new Array(); var Komunikat=function(id,element_id,wysokosclinii,window_scrollX,window_scrollY,event_clientX,event_clientY,element_id_top,element_id_bottom,tekst_komunikat){ if(!$(id).data('dymkisubst_poprawnie')){ this_zmienna.UsunKomunikatInfo(); return; } var div=document.createElement('div'); $(div).html(tekst_komunikat); var P=function(element){ var komunikat=$(element).find("p:first-child"); $(komunikat).css("margin-top","0"); var komunikat=$(element).find("p:last-child"); $(komunikat).css("margin-bottom","0"); } P(div); tekst_komunikat=$(div).html(); this_zmienna.WyswietlKomunikatInfoKombajn(id,element_id,wysokosclinii,window_scrollX,window_scrollY,event_clientX,event_clientY,element_id_top,element_id_bottom,tekst_komunikat); } this.UsunKomunikatInfo(); var kod=this.PobierzKodElementuRodzicaA(id); if(kod===null){return;} var old_href=id.getAttribute('old_href'); var href=id.getAttribute('href'); if(href===null){ href=""; }else{ href=DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(href); href=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(href); } if(old_href){ old_href=DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(old_href); old_href=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(old_href); } var strona=DodatkiSkrypt.Info.page.fullname; var wikikod=((old_href!==null)?('{{#invoke:Brudnopis/Persino/Dymki|UzyskajOpisOdParametrówLinku|'+kod+'|'+href+'|'+old_href+'}}'):('{{#invoke:Brudnopis/Persino/Dymki|UzyskajOpisOdParametrówLinku|'+kod+'|'+href+'}}')); /**/ var promise=DodatkiSkrypt.Scribunto.ApiLuaParse(wikikod,strona,null,true,null,null,null,null,null,dymkisubst_dymki_zapisz_dane_na_kliencie,ApiAbort(id)).DodatkiSkryptThen(function(data){ var tekst_komunikat=data.parse.text['*']; Komunikat(id,element_id,wysokosclinii,window_scrollX,window_scrollY,event_clientX,event_clientY,element_id_top,element_id_bottom,tekst_komunikat); }).DodatkiSkryptCatch((error) => {}); return promise; } this.UstawZdarzeniaKomunikatuInfo=function(rodzic,__muteks,aktualna_strona){ return $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ return UstalanieZmiennychDymkowe(aktualna_strona,rodzic,function(data,aktualna_strona,rodzic){ var dymkisubst_dymki_nad_linkami_inteligentnymi=data[0];var dymkisubst_dymki_nad_linkami_nieinteligentnymi=data[1];var dymkisubst_dymki_asynchroniczne=data[2]; if(!dymkisubst_dymki_nad_linkami_inteligentnymi){return;} var klasa_link_wewnetrzny=$(rodzic).find('.link'); if($(klasa_link_wewnetrzny).length==0){return;}; klasa_link_wewnetrzny=DodatkiSkrypt.Scribunto.StronicowyParser.FiltrujElementyRodzicaAleNiePod(rodzic,klasa_link_wewnetrzny); $(klasa_link_wewnetrzny).DodatkiSkryptEach(function(s,poszczegolna_klasa){ if($(poszczegolna_klasa).filter('span, a').length>0){ this_zmienna.UstawZdarzeniaKomunikatuElementuInfo(poszczegolna_klasa); } }); var __muteks=new DodatkiSkrypt.Muteks(); var tab_promise=new Array(); rodzic=DodatkiSkrypt.Scribunto.StronicowyParser.PoliczPodAleNiePodPodRodzica(rodzic); $(rodzic).DodatkiSkryptEach(function(i,element_g){ var aktualna_strona=DodatkiSkrypt.Scribunto.StronicowyParser.AktualnaStronaElementuOpakowania(element_g); tab_promise.push(this_zmienna.UstawZdarzeniaKomunikatuInfo(element_g,__muteks,aktualna_strona)); }); return Promise.DodatkiSkryptAll(tab_promise); }); },null,__muteks||dymki_projektowe_muteks); } this.UruchomZdarzenieMouseOverDymkiInfo=function(event,id){ var element_id=id.getBoundingClientRect(); var wysokosclinii=this_zmienna.lineHeight(id); var window_scrollX=window.scrollX; var window_scrollY=window.scrollY; var event_clientX=event.clientX; var event_clientY=event.clientY; var element_id_top=element_id.top; var element_id_bottom=element_id.bottom; /**/ var promise=$(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ if($(id).data('dymkisubst_poprawnie')){ return DymkiSubst.gadgetdymkisubst.WyswietlKomunikatInfo(id,element_id,wysokosclinii,window_scrollX,window_scrollY,event_clientX,event_clientY,element_id_top,element_id_bottom); } },null,dymki_muteks); } this.UstawZdarzeniaKomunikatuElementuInfo=function(poszczegolna_klasa){ var this_zmienna=this; var element_link=poszczegolna_klasa.classList; if((element_link!==null)&&(element_link.length>0)){ for(var a=0;a<element_link.length;++a){ var kod=element_link[a]; if(kod!="link"){ if(this.KodKomunikatuDymku(kod)){ var nie_span_ale_a=$(poszczegolna_klasa).filter('a.link'); var a_tag=((nie_span_ale_a.length>0)?($(nie_span_ale_a)):($(poszczegolna_klasa).find('a'))); if(a_tag.first().get(0)!=null){ $(a_tag).on("mouseover",function(){ var id=this; $(id).data('dymkisubst_poprawnie',true); this_zmienna.UruchomZdarzenieMouseOverDymkiInfo(event,id); }); $(a_tag).on("mouseout",function(){ var id=this; $(id).data('dymkisubst_poprawnie',false); $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ return DymkiSubst.gadgetdymkisubst.UsunKomunikatInfo(id); },null,dymki_muteks); }); break; } } } } } } this.UstawTagiIKlasyKomunikatuInfo=function(rodzic,__muteks,aktualna_strona){ return $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ return UstalanieZmiennychDymkowe(aktualna_strona,rodzic,function(data,aktualna_strona,rodzic){ var dymkisubst_dymki_nad_linkami_inteligentnymi=data[0];var dymkisubst_dymki_nad_linkami_nieinteligentnymi=data[1];var dymkisubst_dymki_asynchroniczne=data[2]; if(!dymkisubst_dymki_nad_linkami_nieinteligentnymi){return;} var tab_promise=new Array(); var CzyNieRysunek=function(element){ if($(element).filter('mw-file-description').parent().filter("figure, span").filter("[typeof=\"mw:File\"]").length>0){return false;}; if($(element).has(' > img.mw-file-element').parent().filter("figure, span").filter("[typeof=\"mw:File\"]").length>0){return false;}; return true; } var NieLinkiReferencji=function(element){ if($(element).parent().hasClass('reference')){return false;}; return true; } var Czy_w_toc=function(element){ var toc=new Array("toc","toc_spis","toc_wykaz"); for(var a=0;a<toc.length;++a){ var toc_pos=$(rodzic).find("."+toc[a]); if((toc_pos!==null)&&(toc_pos.length>0)){ for(var b=0;b<toc_pos.length;++b){ var element_toc=toc_pos[b]; var el=$(element_toc).find(element) if($(el).length>0){ return false; } } } } return true; } var TableMenu=function(element){ var tablemenu=$(rodzic).find("table.tablemenu"); if((tablemenu!==null)&&(tablemenu.length>0)){ for(var s=0;s<tablemenu.length;++s){ var el=$(tablemenu[s]).find(element); if($(el).length>0){ return false; } } } return true; } var NaglowekDokumentacji=function(element){ var dokumentacja=$(rodzic).find(".template-documentation #doc_editlinks, #documentation-meta-data"); if((dokumentacja!==null)&&(dokumentacja.length>0)){ for(var s=0;s<dokumentacja.length;++s){ var el=$(dokumentacja[s]).find(element); if($(el).length>0){ return false; } } } return true; } var CategoryTree=function(element){ var a_element=$(rodzic).find('.CategoryTreeTag').find(element); if($(a_element).length>0){ return false; } return true; } var TrybCiemny=function(element){ var elem1=$(rodzic).find('.uruchom_tryb_ciemny').find(element); var elem2=$(rodzic).find('.uruchom_tryb_jasny').find(element); if(($(elem1).length>0)||($(elem2).length>0)){ return false; } return true; } var BezSzablonSubst=function(element){ var element_tag=$(rodzic).find('.rodzic_szablon_subst_js, .szablon_subst_js').find(element); if($(element_tag).length>0){return false;} return true; } var Thumb=function(element){ var thumb=$(rodzic).find('.thumb').find(element); if($(thumb).length>0){ var caption=$(rodzic).find('.thumb .thumbcaption').find(element); if($(caption).length>0){ return true; } return false; } return true; } var Audio=function(element){ var thumb=$(rodzic).find('.audio').find(element); if($(thumb).length>0){ return false; } return true; } var Button=function(element){ var button=$(element).filter("[role=\"button\"]"); if($(button).length>0){ return false; } return true; } var elementy_a=$(rodzic).find('a'); if($(elementy_a).length==0){return;}; elementy_a=DodatkiSkrypt.Scribunto.StronicowyParser.FiltrujElementyRodzicaAleNiePod(rodzic,elementy_a); var tab_outer_a=new Array(); $(elementy_a).DodatkiSkryptEach(function(a,element_a){ var href=element_a.getAttribute('old_href')||element_a.getAttribute('href'); if((((href!==null)&&(href!=""))||(($(element_a).hasClass('selflink'))&&($(element_a).hasClass('mw-selflink'))))&&(href!="#")&&($(element_a).html()!="")&&(!$ (element_a).hasClass('image'))){ if(!((href)&&(href.match(/^javascript:/g)))){ var linenos=$(element_a).find("span.linenos"); var tak=(((linenos===null)||(linenos.length==0)) &&(CzyNieRysunek(element_a)) &&(NieLinkiReferencji(element_a)) &&(Thumb(element_a)) &&(Audio(element_a)) &&(NaglowekDokumentacji(element_a)) &&(Czy_w_toc(element_a)) &&(TableMenu(element_a)) &&(CategoryTree(element_a)) &&(TrybCiemny(element_a)) &&(BezSzablonSubst(element_a)) &&(Button(element_a)) ); if(tak){ if($(element_a).parent().filter('span.link').length>0){ tak=false; }else{ tak=true; } } if(!tak){ return; } }else{ return; } } (function(element_a){ //var element_a=tab_outer_a[a]; var LinkURL=function(wynik_link_wewnetrzny,element_a){ //var element_outer_a=tab_outer_a[numer_wywolania]; $(element_a).addClass("link"); $(element_a).addClass(wynik_link_wewnetrzny); this_zmienna.UstawZdarzeniaKomunikatuElementuInfo(element_a); return element_a; } var strona_href=element_a.getAttribute('old_href')||element_a.getAttribute('href'); strona_href=(((strona_href)&&(strona_href!=""))?strona_href:"") if(strona_href!==""){ strona_href=strona_href.replace(/[_\s]+/g,"_"); strona_href=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(strona_href); var strona=mw.config.get('wgPageName'); var FunDymkiSubstEvent=function(event){ var id=this; //$(element_a).off("mouseover",FunDymkiSubstEvent); $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var poszczegolna_klasa; return DodatkiSkrypt.Scribunto.ApiLuaParse("{{#invoke:Linki|UzyskajKodWikiLinku|strona="+strona_href+"|wyspecjalizowana=tak}}",strona,null,true,null,null,null,null,null,dymkisubst_dymki_zapisz_dane_na_kliencie, ApiAbort(id,function(id){ //$(id).off("mouseover",FunDymkiSubstEvent).on("mouseover",FunDymkiSubstEvent); })).DodatkiSkryptThen(function(data){ $(id).off("mouseover",FunDymkiSubstEvent); var wynik_linkURL=data.parse.text['*']; var poszczegolna_klasa=LinkURL(wynik_linkURL,element_a); $(id).data('dymkisubst_poprawnie',true); this_zmienna.UruchomZdarzenieMouseOverDymkiInfo(event,id); /**/ }).DodatkiSkryptCatch((error) => {}); },null,dymki_muteks); } $(element_a).off("mouseover",FunDymkiSubstEvent).on("mouseover",FunDymkiSubstEvent); } })(element_a); }); var __muteks=new DodatkiSkrypt.Muteks(); var tab_promise=new Array(); rodzic=DodatkiSkrypt.Scribunto.StronicowyParser.PoliczPodAleNiePodPodRodzica(rodzic); $(rodzic).DodatkiSkryptEach(function(i,element_g){ var aktualna_strona=DodatkiSkrypt.Scribunto.StronicowyParser.AktualnaStronaElementuOpakowania(element_g); tab_promise.push(this_zmienna.UstawZdarzeniaKomunikatuInfo(element_g,__muteks,aktualna_strona)); }); return Promise.DodatkiSkryptAll(tab_promise); }); },null,__muteks||dymki_projektowe_muteks); } } SzablonSubst.SzablonSubst=function(){ var szablonsubst_rozwijanie_szablonow_nie_na_stronie_zbiorczej=undefined; var szablonsubst_rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej=undefined; /**/ var szablonsubst_rozwijanie_szablonow_na_stronie_zbiorczej=undefined; var szablonsubst_rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej=undefined; /**/ var szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined; var szablonsubst_rozwijanie_szablonow_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej=undefined; var szablonsubst_zapisz_dane_na_kliencie=undefined; /**/ if((window.gConfig!==undefined)&&(window.gConfig.register!==undefined)&&(window.gConfig.get!==undefined)){ if(!czy_nie_gconfig_szablonsubst){ czy_nie_gconfig_szablonsubst=true; mw.messages.set({ 'SzablonSubst-name': 'Rozwijanie szablonów', 'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst', 'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Wyłącz możliwość edycji sekcji w artykułach.', 'SzablonSubst-rozwijanie_szablonow_nie_na_stronie_zbiorczej': 'Włącz rozwijanie szablonów, w JavaScript, nie na stronie zbiorczej.', 'SzablonSubst-rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej': 'Sprawdza, czy na stronie niezbiorczej, występuje strona zbiorcza, czy nie, i na podstawie tego ustawia odpowiednie parametry.', 'SzablonSubst-rozwijanie_szablonow_na_stronie_zbiorczej': 'Włącz rozwijanie szablonów, w JavaScript, na stronie zbiorczej.', 'SzablonSubst-rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej': 'Sprawdza, czy na stronie zbiorczej, występuje strona zbiorcza, czy nie, i na podstawie tego ustawia odpowiednie parametry.', 'SzablonSubst-rozwijanie_szablonow_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej': 'Uruchom tylko dla stron ładowanych na głównej stronie zbiorczej', 'SzablonSubst-zapisz_dane_na_kliencie':'Zapisuje dane uzyskane z ładowanych stron ze serwerana klienta', }); gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [ { name: 'nie_uwzgledniaj_edycji_sekcji', desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'), type: 'boolean', deflt: true, legacy: [window, 'wb_szablonsubst-nie_uwzgledniaj_edycji_sekcji'] }, { name: 'rozwijanie_szablonow_nie_na_stronie_zbiorczej', desc: mw.msg('SzablonSubst-rozwijanie_szablonow_nie_na_stronie_zbiorczej'), type: 'boolean', deflt: true, legacy: [window, 'wb_szablonsubst-rozwijanie_szablonow_nie_na_stronie_zbiorczej'] }, { name: 'rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej', desc: mw.msg('SzablonSubst-rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej'), type: 'boolean', deflt: true, legacy: [window, 'wb_szablonsubst-rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej'] }, { name: 'rozwijanie-szablonow_na_stronie_zbiorczej', desc: mw.msg('SzablonSubst-rozwijanie_szablonow_na_stronie_zbiorczej'), type: 'boolean', deflt: true, legacy: [window, 'wb_szablonsubst-rozwijanie_szablonow_na_stronie_zbiorczej'] }, { name: 'rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej', desc: mw.msg('SzablonSubst-rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej'), type: 'boolean', deflt: true, legacy: [window, 'wb_szablonsubst-rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej'] }, { name: 'rozwijanie_szablonow_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej', desc: mw.msg('SzablonSubst-rozwijanie_szablonow_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej'), type: 'boolean', deflt: false, legacy: [window, 'wb_szablonsubst-rozwijanie_szablonow_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej'] }, { name: 'zapisz_dane_na_kliencie', desc: mw.msg('SzablonSubst-zapisz_dane_na_kliencie'), type: 'boolean', deflt: false, legacy: [window, 'wb_szablonsubst-zapisz_dane_na_kliencie'] }, ]); } szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true); szablonsubst_rozwijanie_szablonow_nie_na_stronie_zbiorczej = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow_nie_na_stronie_zbiorczej')==true); szablonsubst_rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej')==true); /**/ szablonsubst_rozwijanie_szablonow_na_stronie_zbiorczej = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow_na_stronie_zbiorczej')==true); szablonsubst_rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej')==true); /**/ szablonsubst_rozwijanie_szablonow_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej')==true); szablonsubst_zapisz_dane_na_kliencie=(gConfig.get('SzablonSubst', 'zapisz_dane_na_kliencie')==true); } szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false); szablonsubst_rozwijanie_szablonow_nie_na_stronie_zbiorczej=((szablonsubst_rozwijanie_szablonow_nie_na_stronie_zbiorczej!=undefined)?szablonsubst_rozwijanie_szablonow_nie_na_stronie_zbiorczej:true); szablonsubst_rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej=((szablonsubst_rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej!=undefined)?szablonsubst_rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej:true); /**/ szablonsubst_rozwijanie_szablonow_na_stronie_zbiorczej=((szablonsubst_rozwijanie_szablonow_na_stronie_zbiorczej!=undefined)?szablonsubst_rozwijanie_szablonow_na_stronie_zbiorczej:true); szablonsubst_rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej=((szablonsubst_rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej!=undefined)?szablonsubst_rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej:true); /**/ szablonsubst_rozwijanie_szablonow_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej=((szablonsubst_rozwijanie_szablonow_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej!=undefined)?szablonsubst_rozwijanie_szablonow_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej:false); szablonsubst_zapisz_dane_na_kliencie=((szablonsubst_zapisz_dane_na_kliencie!=undefined)?szablonsubst_zapisz_dane_na_kliencie:false); /**/ this.UstalanieZmiennychRozwijaniaSzablonowego=function(aktualna_strona,element){ var funkcja=function(){ return DodatkiSkrypt.Scribunto.StronicowyParser.CzyPrawdopodobnieStronaZbiorcza(aktualna_strona,element).DodatkiSkryptThen(function(wikikod){ if(wikikod){ var szablonsubst_rozwijanie_szablonow=szablonsubst_rozwijanie_szablonow_na_stronie_zbiorczej; var szablonsubst_rozwijanie_szablonow_asynchroniczne=szablonsubst_rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej }else{ var szablonsubst_rozwijanie_szablonow=szablonsubst_rozwijanie_szablonow_nie_na_stronie_zbiorczej; var szablonsubst_rozwijanie_szablonow_asynchroniczne=szablonsubst_rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej; } return Promise.resolve([szablonsubst_rozwijanie_szablonow,szablonsubst_rozwijanie_szablonow_asynchroniczne]); }); } if(szablonsubst_rozwijanie_szablonow_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej){ return DodatkiSkrypt.Scribunto.StronicowyParser.CzyPrawdopodobnieStronaZbiorcza().DodatkiSkryptThen(function(data){ if((data)&&(data!="")){ return funkcja(); }else{ return Promise.resolve([false,false,false]); } }); }else{ return funkcja(); } } var promise_szablon=this.UstalanieZmiennychRozwijaniaSzablonowego(); var tab_promise_szablon=new Array(); tab_promise_szablon.push(promise_szablon); var this_zmienna=this; var UstalanieZmiennychSzablonowe=function(aktualna_strona,element,funkcja){ var szablonsubst_rozwijanie_szablonow;var szablonsubst_rozwijanie_szablonow_asynchroniczne; return promise_szablon.DodatkiSkryptThen(function(data){ szablonsubst_rozwijanie_szablonow=data[0];szablonsubst_rozwijanie_szablonow_asynchroniczne=data[1]; if(szablonsubst_rozwijanie_szablonow_asynchroniczne){ if(aktualna_strona){ tab_promise_szablon.push(this_zmienna.UstalanieZmiennychRozwijaniaSzablonowego(aktualna_strona,element)); promise_szablon=tab_promise_szablon.at(-1); return promise_szablon; } } return data; }).DodatkiSkryptThen(function(data){ return funkcja(data,aktualna_strona,element); }).DodatkiSkryptFinally(function(){ if(szablonsubst_rozwijanie_szablonow_asynchroniczne){ if(aktualna_strona){ tab_promise_szablon.pop(); promise_szablon=tab_promise_szablon.at(-1); } } }); } var tab_num=new Array(); this.PobierzSzablon=function(element,nazwa,czy_numerowac,aktualna_strona){ element=DodatkiSkrypt.Szereg.Styl.ElementRodzic(element); var PobierzSzablon=function(element,nazwa,czy_numerowac){ return UstalanieZmiennychSzablonowe(aktualna_strona,element,function(data,aktualna_strona,element){ var szablonsubst_rozwijanie_szablonow=data[0];var szablonsubst_rozwijanie_szablonow_asynchroniczne=data[1]; var tab_promise=new Array(); if(!szablonsubst_rozwijanie_szablonow){return Promise.resolve($());} if(czy_numerowac==undefined){czy_numerowac=true;} var szablon_js; if(!element){ szablon_js=DodatkiSkrypt.Szereg.Styl.ElementRodzic('.szablon_subst_js'); }else{ szablon_js=$(element).find('.szablon_subst_js'); } var rodzic_szablon_subst_js=$(szablon_js).parent().filter('.rodzic_szablon_subst_js'); if(rodzic_szablon_subst_js.length==0){ rodzic_szablon_subst_js=$(szablon_js).filter('.szablon_subst_js'); } if((szablon_js!==null)&&(szablon_js.length>0)){ for(var p=0;p<szablon_js.length;++p){ var element=szablon_js[p]; var potomek=((element)?($('.szablon_subst_js').find(element)):element); if((potomek===null)||(potomek.length==0)){ var strona_szablon_js=undefined; var nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony'); if(nazwa_strony){ strona_szablon_js=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweSkryptoweOrazNieSkryptoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML($(nazwa_strony).html()))); if(/^[_\s]*$/g.test(strona_szablon_js)){ strona_szablon_js=undefined; } } if(!strona_szablon_js){ strona_szablon_js=((nazwa)?nazwa:(DodatkiSkrypt.Info.page.fullname)); } var zawartosc; var wzor_element=$(element).children("*"); if((wzor_element!==null)&&(wzor_element.length>0)){ zawartosc=$(element).html(); for(var i=0;i<wzor_element.length;++i){ var math=wzor_element[i].outerHTML; var math_temp=math; math=math.replace(/[\{\}\=\|]/g,function(s){ var tab={ "{":"{{(}}", "}":"{{)}}", "=":"{{=}}", "|":"{{!}}" }; return tab[s]||s; }).replace(/>/g,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#47;"); math_temp=DodatkiSkrypt.Szereg.Norma.BezZnakowychSpecjalnychElementowychWIndywiduum(math_temp); var re=new RegExp(math_temp,"g"); zawartosc=zawartosc.replace(re,math); } }else{ zawartosc=$(element).html(); } var grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g); if(grupa!==null){ var grupa_temp=grupa.toString(); var grupa_temp2=grupa_temp; grupa_temp=DodatkiSkrypt.Szereg.Norma.BezZnakowychSpecjalnychElementowychWIndywiduum(grupa_temp); var re=new RegExp(grupa_temp,"g"); grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,""); tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1; zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]); } var promise=DodatkiSkrypt.Scribunto.ApiLuaParse(((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?("__NOEDITSECTION__\n"):"\n")+zawartosc,strona_szablon_js,null,true,p,false,true,null,null,szablonsubst_zapisz_dane_na_kliencie).DodatkiSkryptThen(function(data){ var wikikod=data.parse.text['*']; var title=data.parse.title; var number=data.parse.text.number; wikikod=wikikod.replace(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#47;/g,"/"); var parent_szablon_js=szablon_js[number].parentNode; var element_div; if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){ element_div=parent_szablon_js; }else{ element_div=szablon_js[number]; } $(element_div).html(wikikod); element_div.setAttribute('nazwa_strony',title); element_div.classList.add('szablon_subst_js_zanalizowany'); return PobierzSzablon(element_div,nazwa,czy_numerowac); }).DodatkiSkryptCatch(function(error){}); tab_promise.push(promise); } } } return Promise.DodatkiSkryptAll(tab_promise).DodatkiSkryptThen(function(tab_rodzic_szablon_subst_js){ tab_rodzic_szablon_subst_js.forEach(function(rodzic_szablon_subst_js_2){ if(rodzic_szablon_subst_js_2){ rodzic_szablon_subst_js=DodatkiSkrypt.DodatkiSkryptJQuery(rodzic_szablon_subst_js,rodzic_szablon_subst_js_2); } }); return rodzic_szablon_subst_js; }); }); } return PobierzSzablon(element,nazwa,czy_numerowac).DodatkiSkryptThen(function(rodzic_szablon_subst_js){ return rodzic_szablon_subst_js; }); } this.PobierzSzablonyStronyNieZbiorczej=function(){ //return $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](StronaSubst,new Array("analiza_stron_zbiorczych")).DodatkiSkryptThen(function(){ var id_strony=$(DodatkiSkrypt.Szereg.IdCSS(1)).first(); if(id_strony.length>0){ var muteks=new DodatkiSkrypt.Muteks(); return StronaSubst.analiza_stron_zbiorczych.AnalizujDalejSzablonSubst(id_strony[0],muteks); } }).DodatkiSkryptCatch(function(){}); //}); } } StronaSubst.WyswietlStronyKsiazki=function(){ var stronasubst_latex=undefined; var stronasubst_mathml=undefined; var stronasubst_opakuj_kategorie_ze_sortowaniem=undefined; var stronasubst_przytnij_tekst=undefined; var stronasubst_ukrywaj_toc=undefined; var stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach=undefined; var stronasubst_numerowanie_poszczegolnych_rozdzialow=undefined; var stronasubst_aktualizowanie_nazw_artykulow=undefined; var stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami=undefined; var stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika=undefined; var stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej=undefined; var stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule=undefined; var stronasubst_nie_usuwaj_styli=undefined; var stronasubst_naprawiaj_naglowki=undefined; var stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst=undefined; /**/ var stronasubst_uzupelnianie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej=undefined; var stronasubst_uruchom_postep_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej=undefined; var stronasubst_zapisz_dane_na_kliencie=undefined; /**/ if((window.gConfig!==undefined)&&(window.gConfig.register!==undefined)&&(window.gConfig.get!==undefined)){ if(!czy_nie_gconfig_stronasubst){ czy_nie_gconfig_stronasubst=true; mw.messages.set({ 'StronaSubst-name': 'Strona zbiorcza', 'StronaSubst-description-page': 'Wikibooks:StronicowyParser', 'StronaSubst-latex': 'Wstaw tekst latexowy wzorów matematycznych, w przeciwnym przypadku jest on w formie obrazków.', 'StronaSubst-mathml': 'Wstaw wzory matematyczne w formie znaczników HTML w postaci MathML.', 'StronaSubst-opakuj_kategorie_ze_sortowaniem' : 'W stronach zbiorczych opakowuje kategorie dla każdej strony, w postaci ramki.', 'StronaSubst-przytnij_tekst' : 'W stronach zbiorczych włącza ucinanie artykułu z początku i końca ze zbędnych białych znaków.', 'StronaSubst-ukrywaj_toc' : "Ukrywa, począwszy od jakiegoś poziomu wszystkich elementów spisów treści, na stronach zbiorczych.", 'StronaSubst-dymki_nad_linkami_w_ladowanych_dynamicznie_stronach' : "Włącza dymki, nad linkami, w ładowanych dynamicznie stronach, tworząc je inteligentnymi.", 'StronaSubst-numerowanie_poszczegolnych_rozdzialow': 'Włącz numerowanie poszczególnych rozdziałów', 'StronaSubst-aktualizowanie_nazw_artykulow' : 'Aktualizuje, w postaci linków, na podstawie spisów treści nazwy artykułów bez nagłówków.', 'StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami' : "Aktualizuje sekcje poszczegónych rozdziałów, według artykułów z nagłówkami, podręcznika ładowanych rozdziałami, w postaci linków.", 'StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika' : 'Aktualizuje, na podstawie tego ostatniego przed nim ustawienia na tak, sekcje poszczegónych rozdziałów artykułów, z nagłówkami, podręcznika ładowanych rozdziałami, w postaci linków, według spisów treści podręcznika, w przeciwnym wypadku według artykułów.', 'StronaSubst-aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule' : 'Aktualizuje, na podstawie tego przedostatniego i ostatniego, przed nim ustawienia na tak, elementy sekcji rozdziałów ładowanych rozdziałami artykułów, z nagłówkami, według spisów treści, w postaci linków, nawet wtedy, gdy one tam nie istnieją.', 'StronaSubst-aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej' : 'Aktualizuje nagłówki, nieartykularne, strony głównej podręcznika na stronie zbiorczej.', 'StronaSubst-nie_usuwaj_styli' : 'Nie usuwa styli z nagłówków ładowanych stron.', 'StronaSubst-naprawiaj_naglowki' : 'Naprawia nagłówki strony.', 'StronaSubst-rozwijaj_szablony_oznaczone_szablonem_szablonsubst' : 'Rozwijaj szablony oznaczone szablonem SzablonSubst.', 'StronaSubst-uzupelnianie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej': 'Uruchom tylko dla stron ładowanych na głównej stronie zbiorczej', 'StronaSubst-uruchom_postep_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej': 'Uruchom, ramkę postępu ładowania stron, tylko dla stron ładowanych na głównej stronie zbiorczej', 'StronaSubst-zapisz_dane_na_kliencie': 'Ściągnięte dane zapisujena kliencie, by później mieć do nich szybszy dostęp', }); gConfig.register('StronaSubst', {name: mw.msg('StronaSubst-name'), descriptionPage: mw.msg('StronaSubst-description-page')}, [ { name: 'latex', desc: mw.msg('StronaSubst-latex'), type: 'boolean', deflt: false, legacy: [window, 'wb_stronasubst_latex'] }, { name: 'mathml', desc: mw.msg('StronaSubst-mathml'), type: 'boolean', deflt: true, legacy: [window, 'wb_stronasubst_mathml'] }, { name: 'opakuj_kategorie_ze_sortowaniem', desc: mw.msg('StronaSubst-opakuj_kategorie_ze_sortowaniem'), type: 'boolean', deflt: false, legacy: [window, 'wb_stronasubst_opakuj_kategorie_ze_sortowaniem'] }, { name: 'przytnij_tekst', desc: mw.msg('StronaSubst-przytnij_tekst'), type: 'boolean', deflt: true, legacy: [window, 'wb_stronasubst_przytnij_tekst'] }, { name: 'ukrywaj_toc', desc: mw.msg('StronaSubst-ukrywaj_toc'), type: 'integer', deflt: 0, validation: function(n){ if((n<0)||(n==1)){ throw 'Wartość dotycząca poziomu ukrywania spisów treści jest nieprawidłowa!' }; return n; }, legacy: [window, 'wb_stronasubst_ukrywaj_toc'] }, { name: 'dymki_nad_linkami_w_ladowanych_dynamicznie_stronach', desc: mw.msg('StronaSubst-dymki_nad_linkami_w_ladowanych_dynamicznie_stronach'), type: 'boolean', deflt: true, legacy: [window, 'wb_stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach'] }, { name: 'numerowanie_poszczegolnych_rozdzialow', desc: mw.msg('StronaSubst-numerowanie_poszczegolnych_rozdzialow'), type: 'boolean', deflt: true, legacy: [window, 'wb_stronasubst_numerowanie_poszczegolnych_rozdzialow'] }, { name: 'aktualizowanie_nazw_artykulow', desc: mw.msg('StronaSubst-aktualizowanie_nazw_artykulow'), type: 'boolean', deflt: true, legacy: [window, 'wb_stronasubst_aktualizowanie_nazw_artykulow'] }, { name: 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami', desc: mw.msg('StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami'), type: 'boolean', deflt: true, legacy: [window, 'wb_stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami'] }, { name: 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika', desc: mw.msg('StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika'), type: 'boolean', deflt: false, legacy: [window, 'wb_stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika'] }, { name: 'aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule', desc: mw.msg('StronaSubst-aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule'), type: 'boolean', deflt: false, legacy: [window, 'wb_stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule'] }, { name: 'aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej', desc: mw.msg('StronaSubst-aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej'), type: 'boolean', deflt: true, legacy: [window, 'wb_stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej'] }, { name: 'nie_usuwaj_styli', desc: mw.msg('StronaSubst-nie_usuwaj_styli'), type: 'boolean', deflt: true, legacy: [window, 'wb_stronasubst_nie_usuwaj_styli'] }, { name: 'naprawiaj_naglowki', desc: mw.msg('StronaSubst-naprawiaj_naglowki'), type: 'boolean', deflt: false, legacy: [window, 'wb_stronasubst_naprawiaj_naglowki'] }, { name: 'rozwijaj_szablony_oznaczone_szablonem_szablonsubst', desc: mw.msg('StronaSubst-rozwijaj_szablony_oznaczone_szablonem_szablonsubst'), type: 'boolean', deflt: true, legacy: [window, 'wb_stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst'] }, { name: 'uzupelnianie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej', desc: mw.msg('StronaSubst-uzupelnianie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej'), type: 'boolean', deflt: true, legacy: [window, 'wb_stronasubst_uzupelnianie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej'] }, { name: 'uruchom_postep_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej', desc: mw.msg('StronaSubst-uruchom_postep_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej'), type: 'boolean', deflt: true, legacy: [window, 'wb_stronasubst_uruchom_postep_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej'] }, { name: 'zapisz_dane_na_kliencie', desc: mw.msg('StronaSubst-zapisz_dane_na_kliencie'), type: 'boolean', deflt: false, legacy: [window, 'wb_stronasubst_zapisz_dane_na_kliencie'] }, ]); } stronasubst_latex = (gConfig.get('StronaSubst', 'latex')==true); stronasubst_mathml = (((gConfig.get('StronaSubst', 'mathml'))&&(!stronasubst_latex))==true); stronasubst_opakuj_kategorie_ze_sortowaniem = (gConfig.get('StronaSubst', 'opakuj_kategorie_ze_sortowaniem')==true); stronasubst_przytnij_tekst = (gConfig.get('StronaSubst', 'przytnij_tekst')==true); stronasubst_ukrywaj_toc = gConfig.get('StronaSubst', 'ukrywaj_toc'); stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach = gConfig.get('StronaSubst', 'dymki_nad_linkami_w_ladowanych_dynamicznie_stronach'); stronasubst_numerowanie_poszczegolnych_rozdzialow = gConfig.get('StronaSubst', 'numerowanie_poszczegolnych_rozdzialow'); stronasubst_aktualizowanie_nazw_artykulow = (gConfig.get('StronaSubst', 'aktualizowanie_nazw_artykulow')==true); stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami = (gConfig.get('StronaSubst', 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami')==true); stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika = (gConfig.get('StronaSubst','aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika')==true); stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej = (gConfig.get('StronaSubst','aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej')==true); stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule = (gConfig.get('StronaSubst','aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule')==true); stronasubst_nie_usuwaj_styli = (gConfig.get('StronaSubst','nie_usuwaj_styli')==true); stronasubst_naprawiaj_naglowki = (gConfig.get('StronaSubst','naprawiaj_naglowki')==true); stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst = (gConfig.get('StronaSubst','rozwijaj_szablony_oznaczone_szablonem_szablonsubst')==true); stronasubst_uzupelnianie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej = (gConfig.get('StronaSubst','uzupelnianie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej')==true); stronasubst_uruchom_postep_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej = (gConfig.get('StronaSubst','uruchom_postep_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej')==true); stronasubst_zapisz_dane_na_kliencie = (gConfig.get('StronaSubst','zapisz_dane_na_kliencie')==true); } //var podglad=document.querySelector('body:not(.action)'); //if(podglad){return;} var stronasubst_tablica_tych_samych=new Array(); var stronasubst_tablica_rozdzialow=new Array(); var stronasubst_tablica_alternatywnych_nazw=new Array(); stronasubst_latex=((stronasubst_latex!==undefined)?stronasubst_latex:false); stronasubst_mathml=((stronasubst_mathml!==undefined)?stronasubst_mathml:true); stronasubst_opakuj_kategorie_ze_sortowaniem=((stronasubst_opakuj_kategorie_ze_sortowaniem!==undefined)?stronasubst_opakuj_kategorie_ze_sortowaniem:false); stronasubst_przytnij_tekst=((stronasubst_przytnij_tekst!==undefined)?stronasubst_przytnij_tekst:true); stronasubst_ukrywaj_toc=parseInt(((stronasubst_ukrywaj_toc!==undefined)?stronasubst_ukrywaj_toc:0)); stronasubst_ukrywaj_toc=((!isNaN(stronasubst_ukrywaj_toc))?stronasubst_ukrywaj_toc:0); stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach=((stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach!==undefined)?stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach:true); stronasubst_numerowanie_poszczegolnych_rozdzialow=((stronasubst_numerowanie_poszczegolnych_rozdzialow!==undefined)?stronasubst_numerowanie_poszczegolnych_rozdzialow:true); stronasubst_aktualizowanie_nazw_artykulow=((stronasubst_aktualizowanie_nazw_artykulow!==undefined)?stronasubst_aktualizowanie_nazw_artykulow:true); stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami=((stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami!==undefined)?stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami:true); stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika=((stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika!==undefined)?stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika:false); stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej=((stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej!==undefined)?stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej:true); stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule=((stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule!==undefined)?stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule:false); stronasubst_nie_usuwaj_styli=((stronasubst_nie_usuwaj_styli!==undefined)?stronasubst_nie_usuwaj_styli:true); stronasubst_naprawiaj_naglowki=((stronasubst_naprawiaj_naglowki!==undefined)?stronasubst_naprawiaj_naglowki:false); stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst=((stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst!==undefined)?stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst:true); /**/ stronasubst_uzupelnianie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej=(stronasubst_uzupelnianie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej!=undefined)?stronasubst_uzupelnianie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej:true; /**/ stronasubst_uruchom_postep_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej=(stronasubst_uruchom_postep_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej!=undefined)?stronasubst_uruchom_postep_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej:true; stronasubst_zapisz_dane_na_kliencie=(stronasubst_zapisz_dane_na_kliencie!=undefined)?stronasubst_zapisz_dane_na_kliencie:false; /**/ var this_zmienna=this; var NiePobranaStronaLubNieIstnieje=function(title,strona_hash,elements,muteks_stronasubst){ var tab_promise=new Array(); var a=document.createElement('a');/*Tworzenie linku*/ a.setAttribute('href',"/wiki/"+DodatkiSkrypt.Szereg.Kodowanie.EncodeHtml(title)); $(a).html(strona_hash); var subtitle=DodatkiSkrypt.Szereg.Napis.SubTitle(strona_hash) var span=document.createElement('span'); $(span).append(a); span.setAttribute("class","niw link"); var strong=document.createElement("strong"); $(strong).append(span); var przed=document.createTextNode("{{:"); var po=document.createTextNode("}}"); $(span).before(przed); $(strong).append(po); var toc_h=DodatkiSkrypt.Szereg.Styl.TocHn(); var hn=DodatkiSkrypt.Szereg.Styl.Hn(); for(var q in elements){ (function(q){ var element=elements[q]; $(element).html(""); $(element).append(strong); $(element).css('display',"block"); var parent=element.parentNode; if((parent!==null)&&(parent.tagName.toUpperCase()=="DIV")){ parent.style.display="block"; } var pasek=element.parentNode.querySelector('.postęp_ładowania_artykułu'); if(pasek!==null){ element.parentNode.removeChild(pasek); } $(element).filter('.strona_subst').addClass("strona_subst_zanalizowane"); $(element).filter('.strona_subst').parent(".rozdział_książki").children('.mw-heading').children(hn).not(toc_h).attr("id_podstrona",subtitle); tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](DymkiSubst,new Array("gadgetdymkisubst")).DodatkiSkryptThen(function(){ var tab_promise=new Array(); var muteks=new DodatkiSkrypt.Muteks(); tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element,muteks)); tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element,muteks)); return Promise.DodatkiSkryptAll(tab_promise); }); },null,muteks_stronasubst)); })(q); } return Promise.DodatkiSkryptAll(tab_promise); } var WikikodTitle=function(data,tabs,titles,tabstrona,muteks_stronasubst,tablica_przednaglowkowa_html,stronasubst_latex,stronasubst_mathml){ var title=data.parse.title; var wikikod=data.parse.text['*']; var t=data.parse.text.number; var strona_hash=titles[t]; var elements=tabstrona[strona_hash]; if(wikikod==null){ return NiePobranaStronaLubNieIstnieje(title,strona_hash,elements,muteks_stronasubst); } var tab_promise_fun=new Array(); //var tab_promise=new Array(); for(var q in elements){ var element=elements[q]; $(element).parent().children(".postęp_ładowania_artykułu").remove(); $(element).css('display','block'); $(element).html(wikikod); (function(element,title,titles){ tab_promise_fun.push(function(){return this_zmienna.PrzeniesienieLubEwentualnieUsuwaniePrzySprawdzeniuStyloweOrazLinkoweStronyParsera(element);}); tab_promise_fun.push(function(){return DodatkiSkrypt.Strona.ZamienianeAdresoweLinkoweReferencjiByByłyWskazywalneDoStronyAktualnej(element,title,titles);}); })(element,title,titles); } tab_promise_fun.push(function(){return DodatkiSkrypt.Strona.IndeksowanieNapisuWprowadzeniaTekstu();}); tab_promise_fun.push(function(){return DodatkiSkrypt.Strona.PrzeIndeksowanieWszystkichRazemTOC(true);}); (function(elements,tabs,strona_hash,tablica_przednaglowkowa_html,stronasubst_tablica_alternatywnych_nazw,stronasubst_tablica_tych_samych,stronasubst_tablica_rozdzialow,stronasubst_latex,stronasubst_mathml){ tab_promise_fun.push(function(){ return DodatkiSkrypt.Strona.AktualizowanieSpisuMateriiStrony(elements,tabs,strona_hash,tablica_przednaglowkowa_html,stronasubst_tablica_alternatywnych_nazw,stronasubst_tablica_tych_samych,stronasubst_tablica_rozdzialow,true,stronasubst_latex,stronasubst_mathml); }); })(elements,tabs,strona_hash,tablica_przednaglowkowa_html,stronasubst_tablica_alternatywnych_nazw,stronasubst_tablica_tych_samych,stronasubst_tablica_rozdzialow,stronasubst_latex,stronasubst_mathml); tab_promise_fun.push(function(){return DodatkiSkrypt.Nawigacja.createCollapseButtons(elements);}); tab_promise_fun.push(function(){return DodatkiSkrypt.Nawigacja.createNavigationBarToggleButton(elements);}); /**/ //tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ // return DodatkiSkrypt.Strona.OdkywanieSpisuMateriiTOC(); //},null,muteks_stronasubst)); /**/ //tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ // return DodatkiSkrypt.Boksy.StickyXY(); //},null,muteks_stronasubst)); /**/ //tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ // return DodatkiSkrypt.Boksy.NotOverflowXY(); //},null,muteks_stronasubst)); /**/ if(stronasubst_numerowanie_poszczegolnych_rozdzialow){ for(var q in elements){ var element=elements[q]; (function(element){ var str_fun=$(element).parent().find("> div.mw-heading").first().find(" > span.numeracja"); if(str_fun.length>0){ var numer=$(str_fun[0]).html(); numer=DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzezOdpowiednieZnaki(numer).replace(/\.$/g,""); tab_promise_fun.push(function(){return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](NumerSubst,new Array("numer")).DodatkiSkryptThen(function(){ return NumerSubst.numer.NumerowanieNaglowkowStron(element,numer,true); }); }); } })(element); } } //var strona_start=$(elements[0]).parents(".strona_start, .rodzic_szablon_subst_js.szablon_subst_js_zanalizowany, .artykułsubst"); //var rodzic=undefined; //if((strona_start!==null)&&(strona_start.length>0)){ // rodzic=strona_start.get(0); //} /**/ //tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ // DodatkiSkrypt.Strona.IndeksowanieNapisuWprowadzeniaTekstu(); //},null,muteks_stronasubst)); /**/ tab_promise_fun.push(function(){return DodatkiSkrypt.Strona.IndeksowanieNapisuWprowadzeniaTekstu();}); tab_promise_fun.push(function(){return DodatkiSkrypt.Strona.PrzeIndeksowanieWszystkichRazemTOC(true);}); /**/ for(var q in elements){ var element=elements[q]; (function(element){ tab_promise_fun.push(function(){return DodatkiSkrypt.Strona.QuizIframe(element,title);}); tab_promise_fun.push(function(){return DodatkiSkrypt.Strona.PoprawianieNapisoweNumeruWprowadzeniaTekstu(element);}); tab_promise_fun.push(function(){return DodatkiSkrypt.Strona.ZmienianieNazwReferencjiNaNazwyProjektuWoluminu(element);}); if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){ tab_promise_fun.push(function(){ return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](DymkiSubst,new Array("gadgetdymkisubst")).DodatkiSkryptThen(function(){ var muteks=new DodatkiSkrypt.Muteks(); var tab_promise_fun=new Array(); tab_promise_fun.push(function(){return DymkiSubst.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element,muteks,strona_hash);}); tab_promise_fun.push(function(){return DymkiSubst.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element,muteks,strona_hash);}); return DodatkiSkrypt.PoKoleiRozmieszczanieKorutyn(undefined,undefined,tab_promise_fun); }); }); } if(stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst){ tab_promise_fun.push(function(){ var muteks_szablon=new DodatkiSkrypt.Muteks(); return this_zmienna.AnalizujDalejSzablonSubst(element,muteks_szablon,strona_hash); }); } })(element); } return $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ return DodatkiSkrypt.PoKoleiRozmieszczanieKorutyn(undefined,undefined,tab_promise_fun); },null,muteks_stronasubst); } var StronaSubstAnaliza=function(element_strony,wikikod,aktualna_strona,muteks_stronasubst){ var czy_wikikod=wikikod.match(/^[_\s]*$/g); var strona_start=DodatkiSkrypt.Szereg.Styl.ElementRodzic('.strona_start'); if(czy_wikikod){ return; } var toc_h=DodatkiSkrypt.Szereg.Styl.TocHn(); var hn=DodatkiSkrypt.Szereg.Styl.Hn(); var heading=DodatkiSkrypt.Szereg.Styl.HeadingHn(); element_strony=DodatkiSkrypt.Szereg.Styl.ElementRodzic(element_strony); var tab_promise=new Array(); var element_strony_przed=$(element_strony).find(hn).not(toc_h); var element_parser=$(element_strony_przed).parents(DodatkiSkrypt.Szereg.IdCSS(1)); var tablica_przednaglowkowa_html=new Array(); (function(){ for (mw_parser_output of element_parser){ var iterator=DodatkiSkrypt.Szereg.Html.IteratorPotomkowyPoElemencieHtml(mw_parser_output,true); while(true){ var element_html=iterator(); if(!element_html){break;} if($(element_strony_przed).filter(element_html).length>0){return;}; var tagname=element_html.tagName; var czy_headline=((tagname)&&(tagname.match(/^H\d+$/g))); if(czy_headline){ var tekst_bez_stylow_bez_numeracji=DodatkiSkrypt.Szereg.Napis.KodHTMLProwadzeniaTekstu(element_html); var tekst_bez_stylow=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweSkryptoweOrazNieSkryptoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(tekst_bez_stylow_bez_numeracji)); var id=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTML(tekst_bez_stylow); /**/ tablica_przednaglowkowa_html[id]=(tablica_przednaglowkowa_html[id]||0)+1; } } }; })(); var rozdzial_ksiazki="rozdział_książki"; var tagclass_1=$(element_strony).filter("."+rozdzial_ksiazki).not('.klasa_książki > .klasa_nagłówka > .rozdział_książki'); var tagclass_2=$(element_strony).filter('.klasa_książki').children('.klasa_nagłówka').children("."+rozdzial_ksiazki); var tagclass=$(DodatkiSkrypt.DodatkiSkryptJQuery(tagclass_1,tagclass_2)); if(tagclass===null){ return null; } var liczba_elementow=tagclass.length; if(liczba_elementow==0){ return null; } var titles=new Array(); var tabstrona=new Array(); var tabs=new Array(); var tab_section=new Array(); var tab_hn=new Array(); /**/ var edit_action=function(numer,strona,hn_element,link_strona,czy_link_nie_w_naglowku){ var div_heading=$(hn_element).closest('.mw-heading'); var heading=($(div_heading).length>0)?$(div_heading):$(hn_element); var linkstrony_editsection=$(heading).children('.mw-editsection').first().get(0); var czy_linkstrony_editsection=$(linkstrony_editsection).has('.stronasubst-edytuj').get(0); if(!linkstrony_editsection){ var editsection=document.createElement('span'); $(editsection).addClass('mw-editsection'); $(heading).first().append(editsection); } var mw_editsection=$(heading).first().find('.mw-editsection'); if(czy_linkstrony_editsection==null){ var skin_mobilny=($('body.skin-minerva').length>0); if(!skin_mobilny){ var bracket_poczatek=document.createElement('span'); $(bracket_poczatek).addClass('mw-editsection-bracket'); $(bracket_poczatek).html("["); var a=document.createElement('a'); $(a).attr({ 'href':"/w/index.php?title="+DodatkiSkrypt.Szereg.Kodowanie.EncodeHtml(strona,false,true)+"&action=edit"+((numer>0)?("&section="+numer):""), 'title':"Edytuj artykuł: "+link_strona, 'class':'stronasubst-edytuj', }); $(a).html("edytuj"); var bracket_koniec=document.createElement('span'); $(bracket_koniec).addClass('mw-editsection-bracket'); $(bracket_koniec).html("]"); $(mw_editsection).append(bracket_poczatek); $(mw_editsection).append(a) $(mw_editsection).append(bracket_koniec); }else{ var a=document.createElement('a'); $(a).attr({ 'class':"cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet stronasubst-edytuj", 'role':'button', 'title':"Edytuj sekcję: "+link_strona, 'href':"/w/index.php?title="+DodatkiSkrypt.Szereg.Kodowanie.EncodeHtml(strona,false,true)+"&action=edit"+((numer>0)?("&section="+numer):"") }); var span1=document.createElement('span'); $(span1).attr('class','minerva-icon minerva-icon--edit'); var span2=document.createElement('span'); $(span2).html("edytuj"); $(a).append(span1); $(a).append(span2); $(mw_editsection).append(a); } } linkstrony_editsection=$(heading).children('.mw-editsection').first().has('.stronasubst-artykuł').get(0); if(linkstrony_editsection==null){ var mw_editsection_bracket=$(mw_editsection).find('a').first().get(0); if(mw_editsection_bracket!==null){ if(czy_link_nie_w_naglowku){ var skin_mobilny=($('body.skin-minerva').length>0); if(!skin_mobilny){ var a=document.createElement('a'); $(a).html("artykuł"); $(a).attr({ "href":"/wiki/"+DodatkiSkrypt.Szereg.Kodowanie.EncodeHtml(link_strona), "title":"Zobacz artykuł: "+link_strona, "class":"stronasubst-artykuł", }); var span=document.createElement('span'); $(span).html("| "); $(span).attr('class',"mw-editsection-bracket"); var czy_ma=$(mw_editsection_bracket).parent().hasClass('link'); if(czy_ma){ var rodzic_mw_editsection_bracket=$(mw_editsection_bracket).parent(); $(rodzic_mw_editsection_bracket).before(span); var span2=$(rodzic_mw_editsection_bracket).prev(); if($(span2).length>0){ $(span2).before(a); }else{ $(mw_editsection).append(a); } }else{ $(mw_editsection_bracket).before(span); var span2=$(mw_editsection_bracket).prev(); if($(span2).length>0){ $(span2).before(a); }else{ $(mw_editsection).append(a); } } }else{ var a=document.createElement('a'); $(a).attr({ 'class':"cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet stronasubst-artykuł", 'role':'button', 'title':"Zobacz artykuł: "+link_strona, 'href':"/wiki/"+DodatkiSkrypt.Szereg.Kodowanie.EncodeHtml(link_strona) }); var span1=document.createElement('span'); $(span1).attr('class','minerva-icon minerva-icon--link'); var span2=document.createElement('span'); $(span2).html("przejdź"); $(a).append(span1); $(a).append(span2); var mw_editsection_bracket=$(mw_editsection).find('a').first().get(0); var czy_ma=$(mw_editsection_bracket).parent().hasClass('link'); if(czy_ma){ $(mw_editsection_bracket).parent().filter('.link').before(a); }else{ $(mw_editsection_bracket).before(a); } } } } } $(heading).children('.mw-editsection').DodatkiSkryptEach(function(i,element){ var muteks=new DodatkiSkrypt.Muteks(); tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element,muteks,aktualna_strona)); tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element,muteks,aktualna_strona)); }); } /**/ var ZmienianieElementoweIndeksuStronyOrazSamegoTOC=function(data,muteks_wolumin,tab_section,__FUNKCJA){ return $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var wikikod=data.parse.text['*']; var c=data.parse.text.number; if(/^\s*$/g.test(wikikod)){return;} if(tab_section.length==0){return;} var tab_c=tab_section[c]; if(typeof(tab_c)=="string"){return;} if(tab_c.length!=undefined){ var headline=tab_c[0]; }else{ var headline=tab_c; } DodatkiSkrypt.Strona.IndeksowanieNapisuWprowadzeniaTekstu(); DodatkiSkrypt.Strona.PrzeIndeksowanieWszystkichRazemTOC(true); wikikod=__FUNKCJA(headline,wikikod,tab_c); headline=DodatkiSkrypt.Szereg.Napis.ZmienianieNapisuWprowadzeniaTekstu(headline,wikikod); DodatkiSkrypt.Strona.ZamienianieNazwyLinkuSpisuMateriiTOC(headline,true,stronasubst_latex); DodatkiSkrypt.Strona.IndeksowanieNapisuWprowadzeniaTekstu(); DodatkiSkrypt.Strona.PrzeIndeksowanieWszystkichRazemTOC(true); if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){ //var muteks=new DodatkiSkrypt.Muteks(); //return $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](DymkiSubst,new Array("gadgetdymkisubst")).DodatkiSkryptThen(function(){ var headline_nowe=headline; if(headline_nowe){ var muteks=new DodatkiSkrypt.Muteks(); var tab_promise_fun=new Array(); tab_promise_fun.push(function(){return DymkiSubst.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline_nowe,muteks,aktualna_strona);}); tab_promise_fun.push(function(){return DymkiSubst.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline_nowe,muteks,aktualna_strona);}); return DodatkiSkrypt.PoKoleiRozmieszczanieKorutyn(undefined,undefined,tab_promise_fun); } }); } },null,muteks_wolumin); } var muteks_wolumin=new DodatkiSkrypt.Muteks(); var tab_fun=new Array(); for (var i=0;i<liczba_elementow;++i){ var tagclassname=tagclass[i]; var szablon_subst_js=$(element_strony).find(".rodzic_szablon_subst_js.szablon_subst_js_zanalizowany, .szablon_subst_js.szablon_subst_js_zanalizowany"); var CzyOdrzucic=function(){ var potomek_analizowany=$(szablon_subst_js).find(tagclassname); return (potomek_analizowany.length>0); } if(CzyOdrzucic()){continue;} if(tagclassname.tagName.toUpperCase()!="DIV"){ return; } var class_element=$(tagclassname).children('.strona_subst'); var element; if((class_element!==null)&&(class_element.length==1)){ element=class_element[0]; if(element.tagName.toUpperCase()!="DIV"){ return; } }else{ console.error("Wystąpił błąd: ", "Liczba elementów w div'ie, tzn. .strona_subst, jest nierówna jeden:",class_element.length); return; } var czy_link_nie_w_naglowku; var strona_headline=$(tagclassname).find("> "+heading+", > h1, > h2, > h3, > h4, > h5, > h6").not(toc_h); var link_strona; if((strona_headline!==null)&&(strona_headline.length==1)){ strona_a=$(strona_headline[0]).find('a'); if((strona_a!==null)&&(strona_a.length==1)){ link_strona=DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(strona_a[0].getAttribute('href')); if(link_strona!==null){ var re=/\/wiki\//g; if(re.test(link_strona)){ link_strona=link_strona.substring(6,link_strona.length); czy_link_nie_w_naglowku=false; }else{ return; } } }else{ link_strona=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweSkryptoweOrazNieSkryptoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML($(element).html())); czy_link_nie_w_naglowku=true; } }else{ console.error("Wystąpił błąd: ", "Liczba nagłówków się nie zgadza, jest nierówna jeden!",strona_headline.length); return; } var re = /^[_\s]*$/g; var dopasowanie = re.test(link_strona); if(dopasowanie){ return; }; link_strona=link_strona.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ").replace(/&amp;/g,"&").replace(/&nbsp;/g," "); var hash=link_strona.replace(/^([^#]*)#(.*)$/,"$2").replace(/&amp;/g,"&").replace(/&nbsp;/g,"_"); /**/ var hn_element=strona_headline[0]; if((hn_element===null)||(!hn_element.tagName.toUpperCase().match(/^H\d+$/g))){return;} $(hn_element).closest('.mw-heading').children('.mw-editsection').remove(); $(hn_element).children('.mw-editsection').remove(); tab_section[i]=new Array(hn_element,link_strona,czy_link_nie_w_naglowku); var strona=link_strona.match(/^[^#]*/g).toString(); /**/ var PraceIteracyjne=function(link_strona,strona,hn_element,czy_link_nie_w_naglowku,tab_section,i){ var tab_promise=new Array(); if(/#/g.test(link_strona)){ /**/ var hash=link_strona.replace(/^([^#]*)#(.*)$/g,"$2"); /**/ strona=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(strona); hash=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(hash); /**/ var promise=DodatkiSkrypt.Scribunto.ApiLuaParse("{{#invoke:StronicowyParser|KtóraSekcjaStrony|"+strona+"|"+hash+"}}",aktualna_strona,null,true,i,null,null,null,null,stronasubst_zapisz_dane_na_kliencie); tab_promise.push(promise.DodatkiSkryptThen(function(data){ return $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var wikikod=data.parse.text['*']; var c=data.parse.text.number; /**/ var tab_c=tab_section[c]; edit_action(parseInt(wikikod),tab_c[1].match(/^[^#]*/g).toString(),tab_c[0],tab_c[1],tab_c[2]); },null,muteks_wolumin); }).DodatkiSkryptCatch((error) => {})); if(stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami){ if(!stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika){ var promise=DodatkiSkrypt.Scribunto.ApiLuaParse("{{#invoke:StronicowyParser|ZwróćSekcjęNagłówkaStrony|"+strona+"|"+hash+"}}</div>",aktualna_strona,null,true,i,null,null,null,null,stronasubst_zapisz_dane_na_kliencie); tab_promise.push(promise.DodatkiSkryptThen(function(data){ return ZmienianieElementoweIndeksuStronyOrazSamegoTOC(data,muteks_wolumin,tab_section,function(headline,wikikod,tab_c){ wikikod=this_zmienna.PrzeniesienieLubEwentualnieUsuwaniePrzySprawdzeniuStyloweOrazLinkoweStronyParsera(wikikod,function(wikikod){ wikikod=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweSkryptoweOrazNieSkryptoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(wikikod)); return wikikod; }); return DodatkiSkrypt.Strona.LinkStrona(strona,hash,wikikod); }); }).DodatkiSkryptCatch((error) => {})); }else{ var uzupelniaj_sekcje_artykulow; if(stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule){ uzupelniaj_sekcje_artykulow="tak"; }else{ uzupelniaj_sekcje_artykulow=""; } link_strona=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(link_strona); var promise=DodatkiSkrypt.Scribunto.ApiLuaParse("{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki="+link_strona+"|analiza=tak|nagłówek=tak|uzupełniaj sekcje artykułów="+uzupelniaj_sekcje_artykulow+"|wyspecjalizowana=tak}}}}",aktualna_strona,null,true,i,null,null,null,null,stronasubst_zapisz_dane_na_kliencie); tab_promise.push(promise.DodatkiSkryptThen(function(data){ return ZmienianieElementoweIndeksuStronyOrazSamegoTOC(data,muteks_wolumin,tab_section,function(headline,wikikod,tab_c){ var stare=tab_c[1];var nowe; wikikod=this_zmienna.PrzeniesienieLubEwentualnieUsuwaniePrzySprawdzeniuStyloweOrazLinkoweStronyParsera(wikikod); nowe=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweSkryptoweOrazNieSkryptoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(wikikod)),true); stronasubst_tablica_alternatywnych_nazw[stare]=nowe; var div=document.createElement('div'); $(div).html(wikikod); var a=$(div).find('a'); if((a!==null)&&(a.length>0)){ $(a[0]).attr('title',stare); } return $(div).html(); }); }).DodatkiSkryptCatch((error) => {})); } } }else{ edit_action(0,strona,hn_element,link_strona,czy_link_nie_w_naglowku); if(stronasubst_aktualizowanie_nazw_artykulow){ strona=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(strona); var promise=DodatkiSkrypt.Scribunto.ApiLuaParse("{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki="+strona+"|analiza=tak|wyspecjalizowana=tak}}}}",aktualna_strona,null,true,i,null,null,null,null,stronasubst_zapisz_dane_na_kliencie); tab_promise.push(promise.DodatkiSkryptThen(function(data){ return ZmienianieElementoweIndeksuStronyOrazSamegoTOC(data,muteks_wolumin,tab_section,function(headline,wikikod,tab_c){ var stare=tab_c[1];var nowe; wikikod=this_zmienna.PrzeniesienieLubEwentualnieUsuwaniePrzySprawdzeniuStyloweOrazLinkoweStronyParsera(wikikod); nowe=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweSkryptoweOrazNieSkryptoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(wikikod)),true); stronasubst_tablica_alternatywnych_nazw[stare]=nowe; return wikikod; }); }).DodatkiSkryptCatch((error) => {})); } } return Promise.DodatkiSkryptAll(tab_promise); }; (function(link_strona,strona,hn_element,czy_link_nie_w_naglowku,tab_section,i){ tab_fun.push(function(){ return $(document).DodatkiSkryptSettledPromise(function(){ return PraceIteracyjne(link_strona,strona,hn_element,czy_link_nie_w_naglowku,tab_section,i); }); }); })(link_strona,strona,hn_element,czy_link_nie_w_naglowku,tab_section,i); /**/ tabs[i]=link_strona; var czy=false; for(var d in titles){ if(titles[d]==link_strona){ czy=true; break; } } if(!czy){ titles[titles.length]=link_strona; } if(tabstrona[link_strona]==null){ tabstrona[link_strona]=new Array(); } var tab=tabstrona[link_strona]; var tablen=tab.length; tabstrona[link_strona][tablen]=element; } /**/ var PraceNaglowki=function(){ var tab_promise=new Array(); if(element_strony==document){ var namespace=DodatkiSkrypt.Info.page.namespace; var strona_podrecznika=((namespace!="")?(namespace+":"):"")+DodatkiSkrypt.Info.page.bookname; }else{ var zaan=$(element_strony).parents('.rodzic_szablon_subst_js.szablon_subst_js_zanalizowany, .szablon_subst_js.szablon_subst_js_zanalizowany'); if((zaan!==null)&&(zaan.length>0)){ var strona=zaan[0].getAttribute('nazwa_strony'); if(strona){ var strona_podrecznika=DodatkiSkrypt.Nazwy.FULLBOOKNAME(strona); }else{ var strona_podrecznika=DodatkiSkrypt.Nazwy.FULLBOOKNAME(aktualna_strona); } }else{ var strona_podrecznika=DodatkiSkrypt.Nazwy.FULLBOOKNAME(aktualna_strona); } } strona_podrecznika=strona_podrecznika.replace(/[\s]+/g,"_"); strona_podrecznika=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(strona_podrecznika); //var tab_promise=new Array(); var tab_klasa_ksiazki=new Array(); var klasa_ksiazki_1=$(element_strony).filter('.klasa_książki'); if(klasa_ksiazki_1.length>0){tab_klasa_ksiazki.push(klasa_ksiazki_1);} var klasa_ksiazki_2=$(element_strony).find('.klasa_książki'); if(klasa_ksiazki_2.length>0){tab_klasa_ksiazki.push(klasa_ksiazki_2);} var klasa_ksiazki=$(tab_klasa_ksiazki); if(klasa_ksiazki.length>0){ var tab_naglowka=new Array(); var tab_hn=new Array(); for(var z=0;z<klasa_ksiazki.length;++z){ var pojedyncza_klasa_ksiazki=klasa_ksiazki[z]; var CzyOdrzucic=function(){ var potomek_analizowany=$(element_strony).find(".rodzic_szablon_subst_js.szablon_subst_js_zanalizowany, .szablon_subst_js.szablon_subst_js_zanalizowany").find(pojedyncza_klasa_ksiazki); if(potomek_analizowany.length>0){return true;}; return false; } if(CzyOdrzucic()){continue;} var dana_klasa_naglowka=$(pojedyncza_klasa_ksiazki).children('.klasa_nagłówka').children('.mw-heading').children(hn).not(toc_h); if($(dana_klasa_naglowka).length>0){ $(dana_klasa_naglowka).DodatkiSkryptEach(function(g,element){ var naglowek=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweSkryptoweOrazNieSkryptoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML($(element).html()))); naglowek=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(naglowek); var ww=1; for(var x=0;x<tab_naglowka.length;++x){ if(tab_naglowka[x]==naglowek){ ++ww; } } naglowek=naglowek+((ww>1)?("_"+ww):""); tab_naglowka[g]=naglowek; tab_hn[g]=element; if($(element).parent().parent().parent().hasClass('klasa_książki')){ var promise=DodatkiSkrypt.Scribunto.ApiLuaParse("{{#invoke:StronicowyParser|KtóraSekcjaStrony|"+strona_podrecznika+"|"+naglowek+"}}",aktualna_strona,null,true,g,null,null,null,null,stronasubst_zapisz_dane_na_kliencie); tab_promise.push(promise.DodatkiSkryptThen(function(data){ //var muteks=new DodatkiSkrypt.Muteks(); return $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var wikikod=data.parse.text['*']; var c=data.parse.text.number; var nazwa_podrecznika=strona_podrecznika.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ") var naglowek_sekcji_podrecznika=tab_naglowka[c].replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ") edit_action(parseInt(wikikod),nazwa_podrecznika,tab_hn[c],nazwa_podrecznika+"#"+naglowek_sekcji_podrecznika,true); },null,muteks_wolumin); }).DodatkiSkryptCatch((error) => {})); if(stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej){ var promise=DodatkiSkrypt.Scribunto.ApiLuaParse("{{#invoke:StronicowyParser|ZwróćSekcjęNagłówkaStrony|"+strona_podrecznika+"|"+naglowek+"}}",aktualna_strona,null,true,g,null,null,null,null,stronasubst_zapisz_dane_na_kliencie) tab_promise.push(promise.DodatkiSkryptThen(function(data){ return ZmienianieElementoweIndeksuStronyOrazSamegoTOC(data,muteks_wolumin,tab_hn,function(headline,wikikod,tab_c){ wikikod=this_zmienna.PrzeniesienieLubEwentualnieUsuwaniePrzySprawdzeniuStyloweOrazLinkoweStronyParsera(wikikod,function(wikikod){ wikikod=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweSkryptoweOrazNieSkryptoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(wikikod)); return wikikod; }); return wikikod; }); }).DodatkiSkryptCatch((error) => {})); } } //++g; }); } } } return Promise.DodatkiSkryptAll(tab_promise); } tab_fun.push(function(){ return $(document).DodatkiSkryptSettledPromise(function(){ return PraceNaglowki(); }); }); /**/ var RozwazajNaglowki=function(){ var toc_fun=new DodatkiSkrypt.Strona.ListaNodeTOC(element_strony); if((toc_fun.toc!==null)&&(toc_fun.toc.length>0)){ for(var w=0;w<toc_fun.toc.length;++w){ var czy_side_bar_toc=toc_fun.CzySideBarToc(toc_fun.toc[w]); var ile_jest=0; var li=$(toc_fun.toc[w]).find('li'); if((li!==null)&&(li.length>0)){ for(var dd=0;dd<li.length;++dd){ var element_li=li[dd]; var tocnumber;var toctext_wartosc; if(czy_side_bar_toc){ tocnumber=$(element_li).find('.vector-toc-numb').first()[0]; if(!tocnumber){continue;} toctext_wartosc=$(element_li).find('.vector-toc-text').first().html().replace(new RegExp(DodatkiSkrypt.Szereg.Norma.BezZnakowychSpecjalnychElementowychWIndywiduum(tocnumber.outerHTML),"g"),""); }else{ tocnumber=$(element_li).find('.tocnumber').first()[0]; toctext_wartosc=$(element_li).find('.toctext').first().html(); } if((tocnumber)&&(toctext_wartosc)){ var czy_jest=undefined; var klasa_naglowka=$(element_strony).find('.klasa_nagłówka'); if((klasa_naglowka)&&(klasa_naglowka.length>0)&&(klasa_naglowka[ile_jest])){ var element_klasa_naglowka=klasa_naglowka[ile_jest]; var headline=$(element_klasa_naglowka).find(hn).not(toc_h).first()[0]; if((headline) &&(headline.tagName.toUpperCase().match(/^H\d+$/)) &&(headline.parentNode!=null) &&(headline.parentNode.tagName.toUpperCase()=="DIV") &&($(headline).closest('.mw-heading').parent()[0]===element_klasa_naglowka) ){ var element_a; if(czy_side_bar_toc){ element_a=$(tocnumber).parent().parent().get(0); }else{ element_a=$(tocnumber).parent().get(0); } if(element_a.tagName.toUpperCase()=="A"){ var href=DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(element_a.getAttribute('href')); if(href!==null){ href=DodatkiSkrypt.Szereg.Napis.PoprawianieNazwyIdLubHref(href,true); var id_headline=$(headline).attr('id'); if(id_headline!==null){ id_headline=DodatkiSkrypt.Szereg.Napis.PoprawianieNazwyIdLubHref(id_headline); if(href!=id_headline){czy_jest=true;} }else{czy_jest=true;} }else{czy_jest=true;} }else{czy_jest=true;} }else{czy_jest=true;} }else{czy_jest=true;} if(czy_jest===undefined){ile_jest+=1;} if((czy_jest===undefined)||(!czy_jest)){ var element_toctext=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweSkryptoweOrazNieSkryptoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(toctext_wartosc)).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," "); if(stronasubst_tablica_rozdzialow[element_toctext]==null){ stronasubst_tablica_rozdzialow[element_toctext]=new Array(tocnumber); }else{ stronasubst_tablica_rozdzialow[element_toctext].push(tocnumber); } } } } } } } } /**/ tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ return RozwazajNaglowki(); },null,muteks_stronasubst)); /**/ var Strona=function(strona){ var strona_re=DodatkiSkrypt.Szereg.Norma.BezZnakowychSpecjalnychElementowychWIndywiduum(strona); var re=new RegExp("^\\s*"+strona_re+"\\s*#","g"); return re; } var CzyArtykulyZNaglowkamiDlaStrony=function(re){ for(var s in titles){ var czy_hash=titles[s].match(re); if(czy_hash){ return true; } } return false; } tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var toc_fun=new DodatkiSkrypt.Strona.ListaNodeTOC(element_strony); DodatkiSkrypt.Strona.UstawParametryUstawienioweTOC(toc_fun.toc,stronasubst_ukrywaj_toc,stronasubst_mathml); },null,muteks_stronasubst)); tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var tab_promise=new Array(); for ( var t in titles ) { var strona=titles[t].match(/^[^#]*/g).toString(); var szablon_artykulu; var re_strona=Strona(strona); var czy_naglowki=CzyArtykulyZNaglowkamiDlaStrony(re_strona); if(!czy_naglowki){ strona=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(strona); szablon_artykulu="{{:"+strona+"}}"; }else{ /*---------------------------------*/ var rozdzial1=null; var re=/^([^#]*)#(.*)$/g; if(re.test(titles[t])){ rozdzial1=titles[t].replace(re,"$2"); rozdzial1=rozdzial1.replace(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/<i>/g,"''").replace(/<\/i>/g,"''").replace(/<b>/g,"'''").replace(/<\/b>/g,"'''"); rozdzial1=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(rozdzial1); }else{rozdzial1="";} var rozdzial2=null; var tit=titles[parseInt(t)+1]; if( tit && re.test(tit) && re_strona.test(tit)){ rozdzial2=tit.replace(re,"$2"); rozdzial2=rozdzial2.replace(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/<i>/g,"''").replace(/<\/i>/g,"''").replace(/<b>/g,"'''").replace(/<\/b>/g,"'''"); rozdzial2=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(rozdzial2); }else{rozdzial2="";} /*-- -------------------------*/ szablon_artykulu="{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|TekstRozdziałuStrony|"+strona+"|"+rozdzial1+"|"+rozdzial2+"}}}}"; } //szablon_artykulu="{{PrzytnijTekst|"+szablon_artykulu+"}}"; //if(stronasubst_opakuj_kategorie_ze_sortowaniem){ // szablon_artykulu="{{OpakujKategorieZeSortowaniem|"+szablon_artykulu+"}}"; //} (function(szablon_artykulu,strona,t){ var promise=DodatkiSkrypt.Scribunto.ApiLuaParse(szablon_artykulu,strona,null,true,t,stronasubst_opakuj_kategorie_ze_sortowaniem,stronasubst_przytnij_tekst,null,null,stronasubst_zapisz_dane_na_kliencie); tab_promise.push( promise.DodatkiSkryptThen(function(data){ return $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var muteks=new DodatkiSkrypt.Muteks(); return WikikodTitle(data,tabs,titles,tabstrona,muteks,tablica_przednaglowkowa_html,stronasubst_latex,stronasubst_mathml); },null,muteks_wolumin); }).DodatkiSkryptCatch(function(data){ return $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var strona_hash=titles[t]; var elements=tabstrona[strona_hash]; var muteks=new DodatkiSkrypt.Muteks(); return NiePobranaStronaLubNieIstnieje(strona,strona_hash,elements,muteks); },null,muteks_wolumin); })); })(szablon_artykulu,strona,t); } tab_fun.forEach(function(element_fun){ tab_promise.push($(document).DodatkiSkryptSetTimeOut(function(){ return element_fun(); },0)); }) return Promise.DodatkiSkryptAll(tab_promise); },null,muteks_stronasubst)); return Promise.DodatkiSkryptAll(tab_promise); } //this_zmienna.PrzeniesienieLubEwentualnieUsuwaniePrzySprawdzeniuStyloweOrazLinkoweStronyParsera(wikikod,) this.PrzeniesienieLubEwentualnieUsuwaniePrzySprawdzeniuStyloweOrazLinkoweStronyParsera=function(wikikod,funkcja1,funkcja2){ if(!stronasubst_nie_usuwaj_styli){ wikikod=DodatkiSkrypt.Szereg.Styl.PrzeniesienieStyloweHTMLNaStartStronyParsera(wikikod); wikikod=funkcja1?funkcja1(wikikod):wikikod; }else{ wikikod=DodatkiSkrypt.Szereg.Styl.EwentualneUsuwaniePrzySprawdzeniuStyloweOrazLinkoweStronyParsera(wikikod); wikikod=funkcja2?funkcja2(wikikod):wikikod; } return wikikod; } this.NaprawianieNapisuWprowadzeniaTekstuStrony=function(){ if(stronasubst_naprawiaj_naglowki){ DodatkiSkrypt.Strona.NaprawianieNapisuWprowadzeniaTekstu(); } } this.UruchomBiegUruchamaniaStrony=function(){ if(!stronasubst_uruchom_postep_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej){ return DodatkiSkrypt.ProgressStrony.UstawianieWidokuEwolucji(); } } this.AnalizujDalejSzablonSubst=function(element_strony_szablonu,muteks_szablon,strona_hash){ element_strony_szablonu=DodatkiSkrypt.Szereg.Styl.ElementRodzic(element_strony_szablonu); var tab_promise=new Array(); tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](SzablonSubst,new Array("szablony")).DodatkiSkryptThen(function(){ return SzablonSubst.szablony.PobierzSzablon(element_strony_szablonu,undefined,undefined,strona_hash); }); },null,muteks_szablon)); tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var tab_promise=new Array(); var muteks=new DodatkiSkrypt.Muteks(); var rodzic_szablon_subst_js_szablonu=DodatkiSkrypt.Scribunto.StronicowyParser.PoliczPodAleNiePodPodRodzica(element_strony_szablonu,true); if($(rodzic_szablon_subst_js_szablonu).length>0){ tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ return DodatkiSkrypt.Nawigacja.createCollapseButtons(rodzic_szablon_subst_js_szablonu); },null,muteks)); tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ return DodatkiSkrypt.Nawigacja.createNavigationBarToggleButton(rodzic_szablon_subst_js_szablonu); },null,muteks)); } return Promise.DodatkiSkryptAll(tab_promise); },null,muteks_szablon)); var promise=tab_promise.at(0); tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ return promise.DodatkiSkryptThen(function(element_strony){ var tab_promise=new Array(); var muteks=new DodatkiSkrypt.Muteks(); var rodzic_szablon_subst_js=DodatkiSkrypt.Scribunto.StronicowyParser.ElementyOpakowaniaSzablonSubst(element_strony,true); $(rodzic_szablon_subst_js).DodatkiSkryptEach(function(i,element){ this_zmienna.PrzeniesienieLubEwentualnieUsuwaniePrzySprawdzeniuStyloweOrazLinkoweStronyParsera(element); var nazwa_strony=$(element).attr('nazwa_strony'); /**/ tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var toc_fun=new DodatkiSkrypt.Strona.ListaNodeTOC(element); DodatkiSkrypt.Strona.UstawParametryUstawienioweTOC(toc_fun.toc,stronasubst_ukrywaj_toc,stronasubst_mathml); },null,muteks)); /**/ if(nazwa_strony){ var strona_start_parent=new DodatkiSkrypt.Strona.CzyElementNodeJestPodElementemNode(element); if( (strona_start_parent.CzyElementRodzicJestStronaStart()) &&((new DodatkiSkrypt.Strona.CzyElementNodeJestPodElementemNode()).CzyTenElementMaStronaStartToc(element)) ){ tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ DodatkiSkrypt.Strona.IndeksowanieNapisuWprowadzeniaTekstu(); var strona_start_rodzic=strona_start_parent.ElementKontenerowyStronaStart(); var strona_start_rodzic_node=$(strona_start_rodzic).get(0); DodatkiSkrypt.Strona.AktualizowanieSpisuMateriiStrony(new Array(strona_start_rodzic_node),new Array(),nazwa_strony,new Array(),new Array(),new Array(),new Array(),true,stronasubst_latex,stronasubst_mathml,true); DodatkiSkrypt.Strona.PrzeIndeksowanieWszystkichRazemTOC(true); },null,muteks)); }else{ tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ DodatkiSkrypt.Strona.IndeksowanieNapisuWprowadzeniaTekstu(); DodatkiSkrypt.Strona.TworzenieSpisuRzeczyVectorStickyTOC(); DodatkiSkrypt.Strona.AktualizowanieSpisuMateriiStrony(undefined,new Array(),nazwa_strony,new Array(),new Array(),new Array(),new Array(),true,stronasubst_latex,stronasubst_mathml,true); DodatkiSkrypt.Strona.PrzeIndeksowanieWszystkichRazemTOC(true); /**/ DodatkiSkrypt.Strona.AktualizacjaZdarzeniowaMenowaWektorowaBudowyStrony(); },null,muteks)); } tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var str_strona_start_dziecko=$(element).find('.strona_start'); if($(str_strona_start_dziecko).length>0){ for(var strona_start_dziecko of $(str_strona_start_dziecko)){ var strona_start_dziecko_filtr=new DodatkiSkrypt.Strona.CzyElementNodeJestPodElementemNode(strona_start_dziecko); if( (strona_start_dziecko_filtr.CzyElementRodzicJestStronaStart()) &&((new DodatkiSkrypt.Strona.CzyElementNodeJestPodElementemNode()).CzyTenElementMaStronaStartToc(strona_start_dziecko)) ){ DodatkiSkrypt.Strona.IndeksowanieNapisuWprowadzeniaTekstu(); var strona_start_dziecko_node=strona_start_dziecko_filtr.ElementKontenerowyStronaStart().get(0); DodatkiSkrypt.Strona.AktualizowanieSpisuMateriiStrony(new Array(strona_start_dziecko_node),new Array(),nazwa_strony,new Array(),new Array(),new Array(),new Array(),true,stronasubst_latex,stronasubst_mathml,true); DodatkiSkrypt.Strona.PrzeIndeksowanieWszystkichRazemTOC(true); } } } },null,muteks)); ///tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ // DodatkiSkrypt.Strona.OdkywanieSpisuMateriiTOC(); //},null,muteks)); //tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ // return DodatkiSkrypt.Boksy.StickyXY(); //},null,muteks)); //tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ //return DodatkiSkrypt.Boksy.NotOverflowXY(); //},null,muteks)); //tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ // return DodatkiSkrypt.Strona.IndeksowanieNapisuWprowadzeniaTekstu(); //},null,muteks)); //tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ /// return DodatkiSkrypt.Strona.PrzeIndeksowanieWszystkichRazemTOC(true); //},null,muteks)); }else{ tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ return DodatkiSkrypt.Strona.IndeksowanieNapisuWprowadzeniaTekstu(); },null,muteks)); } tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ DodatkiSkrypt.Strona.QuizIframe(element,nazwa_strony||DodatkiSkrypt.Info.page.fullname); },null,muteks)); tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var tab_promise=new Array(); var fullname=((nazwa_strony)?(nazwa_strony):(DodatkiSkrypt.Info.page.fullname)); var muteks=new DodatkiSkrypt.Muteks(); tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var muteks=new DodatkiSkrypt.Muteks(); return this_zmienna.CzyStronaSubst(element,fullname,true,muteks,true); },null,muteks)); tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var muteks=new DodatkiSkrypt.Muteks(); return this_zmienna.ZbiorczaStrona(element,fullname,muteks,true,this_zmienna.CzyStronaSubst); },null,muteks)); return Promise.DodatkiSkryptAll(tab_promise); },null,muteks)); }); return Promise.DodatkiSkryptAll(tab_promise); }); },null,muteks_szablon)); return Promise.DodatkiSkryptAll(tab_promise); } this.KompleksoweAktualizowanieSpisuMateriiStrony=function(nazwa_strony){ DodatkiSkrypt.Strona.AktualizowanieSpisuMateriiStrony(undefined,new Array(),nazwa_strony,new Array(),new Array(),new Array(),new Array(),true,stronasubst_latex,stronasubst_mathml,true); return DodatkiSkrypt.Strona.AktualizacjaZdarzeniowaMenowaWektorowaBudowyStrony().DodatkiSkryptThen(function(){ /**/ var strona_start=DodatkiSkrypt.Szereg.Styl.ElementRodzic('.strona_start .ciało_strona'); if(strona_start.length>0){ for(var str_strona_start of strona_start){ DodatkiSkrypt.Strona.AktualizowanieSpisuMateriiStrony(new Array(str_strona_start),new Array(),nazwa_strony,new Array(),new Array(),new Array(),new Array(),true,stronasubst_latex,stronasubst_mathml,true); } } }); } this.CzyStronaSubst=function(element,aktualna_strona,czy_szablon_subst,muteks_szablon, czy_nie_koniec){ element=DodatkiSkrypt.Szereg.Styl.ElementRodzic(element); var promise=DodatkiSkrypt.Scribunto.StronicowyParser.CzyPrawdopodobnieStronaZbiorcza(aktualna_strona,element).DodatkiSkryptThen(function(wikikod){ var tab_promise=new Array(); if((wikikod)||(czy_szablon_subst)){ if(stronasubst_numerowanie_poszczegolnych_rozdzialow){ tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](NumerSubst,new Array("numer")).DodatkiSkryptThen(function(){ var artykul=DodatkiSkrypt.Nazwy.ARTICLENAME(aktualna_strona); return NumerSubst.numer.NumerujRozdzialyArtykulu(element,artykul,aktualna_strona); }); },null,muteks_szablon)); }; if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){ tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](DymkiSubst,new Array("gadgetdymkisubst")).DodatkiSkryptThen(function(){ var tab_promise=new Array(); var muteks=new DodatkiSkrypt.Muteks(); tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element,muteks,aktualna_strona)); tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element,muteks,aktualna_strona)); return Promise.DodatkiSkryptAll(tab_promise); }); },null,muteks_szablon)); } } if(!czy_nie_koniec){ return Promise.DodatkiSkryptAll(tab_promise).DodatkiSkryptThen(function(){ if(wikikod){ return $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var muteks_szablon=new DodatkiSkrypt.Muteks(); return StronaSubstAnaliza(element,wikikod,aktualna_strona,muteks_szablon); },null,muteks_szablon); }; }); } }); return promise; } this.ZbiorczaStrona=function(id_numerowanie,aktualna_strona,muteks,czy_tak_function,__function){ return $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var funkcja=function(){ id_numerowanie=DodatkiSkrypt.Szereg.Styl.ElementRodzic(id_numerowanie); return DodatkiSkrypt.Scribunto.StronicowyParser.CzyPrawdopodobnieStronaZbiorcza(aktualna_strona,id_numerowanie).DodatkiSkryptThen(function(data){ if((data)&&(data!=="")){ DodatkiSkrypt.ProgressStrony.UstawianieWidokuEwolucji(); } }).DodatkiSkryptThen(function(){ var tab_promise=new Array(); var muteks=new DodatkiSkrypt.Muteks(); $(id_numerowanie).DodatkiSkryptEach(function(i,id_element){ var tab_elements=new Array(); $(id_element).find(".rozdział_książki").DodatkiSkryptEach(function(i,element){ var str_rozdzial=$(id_element).find('.klasa_książki').children('.klasa_nagłówka').children(element); if(str_rozdzial.length==0){ var parent=$(element).get(0); if((parent)&&(($(tab_elements).filter(parent).length==0)/*||($(tabs).find(parent).length==0)*/)){ tab_elements.push(parent); } } }); var str_element=$(id_element).find('.klasa_książki'); if(str_element.length>0){ str_element.DodatkiSkryptEach(function(i,element){ tab_elements.push(element); }); } tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var muteks=new DodatkiSkrypt.Muteks(); var tab_str=$(tab_elements); if(tab_str.length>0){ return __function(tab_str,aktualna_strona,czy_tak_function,muteks); } },null,muteks)); }); return Promise.DodatkiSkryptAll(tab_promise); }); } if(stronasubst_uzupelnianie_uruchom_tylko_dla_stron_ladowanych_na_glownej_stronie_zbiorczej){ return DodatkiSkrypt.Scribunto.StronicowyParser.CzyPrawdopodobnieStronaZbiorcza().DodatkiSkryptThen(function(data){ if((data)&&(data!="")){ return funkcja(); }else{ var muteks=new DodatkiSkrypt.PustyMuteks(); return $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ },null,muteks); } }); }else{ return funkcja(); } },null,muteks); } }; KategorieSubst.KategorieSubst=function(){ var gadget_uruchom_obsluge_kategorie; if((window.gConfig!==undefined)&&(window.gConfig.register!==undefined)&&(window.gConfig.get!==undefined)){ if(!czy_nie_gconfig_kategoriesubst){ czy_nie_gconfig_kategoriesubst=true; mw.messages.set({ 'KategorieSubst-name': 'Obsługa kategorii', 'KategorieSubst-description-page': 'Wikibooks:StronicowyParser', 'KategorieSubst-uruchom-kategorie': 'Uruchom dodatkową obsługę kategorii.', }); gConfig.register('KategorieSubst', {name: mw.msg('KategorieSubst-name'), descriptionPage: mw.msg('KategorieSubst-description-page')}, [ { name: 'uruchom-kategorie', desc: mw.msg('KategorieSubst-uruchom-kategorie'), type: 'boolean', deflt: false, legacy: [window, 'wb_KategorieSubst-uruchom-kategorie'] }]); gadget_uruchom_obsluge_kategorie=(gConfig.get('KategorieSubst', 'uruchom-kategorie')==true); } } gadget_uruchom_obsluge_kategorie=(gadget_uruchom_obsluge_kategorie!==undefined)?gadget_uruchom_obsluge_kategorie:false; var tabela_sortkey_promise=undefined; var this_zmienna=this; var tab_kategorie_strony_pliki={0:'subcat',1:'page',2:'file',}; var TworzenieTablicyTytułowejNazwSortowaniaStron=function(fullname,jakie_pozycje_kategorii){ var params = { action: 'query', list: 'categorymembers', cmtitle: fullname, cmlimit: 5000, cmprop: 'title|sortkeyprefix', cmtype: tab_kategorie_strony_pliki[jakie_pozycje_kategorii], format: 'json', smaxage: 600, maxage: 600, }; return DodatkiSkrypt.api.ZadaniaApi(params).DodatkiSkryptThen(function(data){ var tab=new Array(); var category = data.query.categorymembers; for(var cat in category){ var categorymembers=category[cat]; var title=categorymembers.title; var sortkey=categorymembers.sortkeyprefix; tab[DodatkiSkrypt.Szereg.Kodowanie.DecodeWiki(title)]=sortkey; } return tab; }).DodatkiSkryptCatch(function(error){return Promise.reject(error);}); } var PobierzInformacjePlikowe=function(plik){ var params={ action: 'query', format: 'json', prop: 'imageinfo', iiprop: 'url|size', iiurlwidth: 85, titles: plik, smaxage: 600, maxage: 600, }; return DodatkiSkrypt.api.ZadaniaApi(params).DodatkiSkryptThen(function(data){ var pages=data.query.pages; for(var p in pages){ var imageinfo=pages[p].imageinfo[0]; var width=imageinfo.width; var height=imageinfo.height; var size=imageinfo.size; var url=((imageinfo.thumburl)?(imageinfo.thumburl.replace(/^[Hh][Tt][Tt][Pp][Ss]?:\/\//g,"//")):(imageinfo.url.replace(/^[Hh][Tt][Tt][Pp][Ss]?:\/\//g,"//"))); if(size/1024<1){ var size_new=size+" B"; }else if(size/1024<1024){ var size_new=parseInt(size/1024*100)/100+" KB"; }else if(size/1024/1024<1024){ var size_new=Math.round(size/1024/1024*100)/100+" MB"; }else if(size/1024/1024/1024<1024){ var size_new=Math.round(size/1024/1024/1024*100)/100+" GB"; }else{ var size_new=size+" B"; } return Promise.resolve([width,height,size_new,url]) } return Promise.reject(data); }).DodatkiSkryptCatch(function(error){return Promise.reject(error);}); } var IleStronKategoriiPlikowJestWDanejKategorii=function(fullname){ var params={ action: 'query', format: 'json', titles: fullname, prop: 'categoryinfo' }; return DodatkiSkrypt.api.ZadaniaApi(params).DodatkiSkryptThen(function(data){ if((data)&&(data.query)&&(data.query.pages)){ var pages = data.query.pages; for (page in pages){ var categoryinfo=pages[page].categoryinfo; if(categoryinfo){ return Promise.resolve([categoryinfo.subcats||0,categoryinfo.pages||0,categoryinfo.files||0]); } } } return Promise.resolve([0,0,0]); }).DodatkiSkryptCatch(function(error){return Promise.reject(error);}); } var IleJestKategoriiStronIPlikowWKategorii=function(href,__function){ var promise_kategorie_ustawienia=DodatkiSkrypt.DodatkiSkryptUserOption.get(href,"CzłonkowieKategorii:"); return promise_kategorie_ustawienia.DodatkiSkryptThen(function(data_ustawienia){ if(!data_ustawienia){return;} var promise_kategorie=IleStronKategoriiPlikowJestWDanejKategorii(href); return promise_kategorie.DodatkiSkryptThen(function(data_faktycznie){ var ile_kategorii=data_faktycznie[0];var ile_stron=data_faktycznie[1];var ile_plikow=data_faktycznie[2]; var tab_strony=data_ustawienia.split("||"); for(var i=0;i<tab_strony.length;++i){ var strona;var sortkey;var numer_porzadku;var przestrzen;var nazwa; var strona_sort=tab_strony[i]; var tab_strona_sort=strona_sort.split("|"); var kategoria_strona_plik=tab_strona_sort[0]; var czy_kategoria=/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/g.test(kategoria_strona_plik); if(czy_kategoria){ ++ile_kategorii; }else{ var czy_plik=/^[Pp][Ll][Ii][Kk]:/g.test(kategoria_strona_plik); if(czy_plik){ ++ile_plikow; }else{ ++ile_stron; } } } return __function(ile_kategorii,ile_stron,ile_plikow) }); }); } var WstawPozycjeNaStronieKategoriiWedleDanychStron=function(fullname,numer_porzadku,wezel,przestrzen,pozycja,nazwa,czy_zagniezdzone,media,kategorie){ if(!tabela_sortkey_promise){tabela_sortkey_promise=new Array();}; if(!tabela_sortkey_promise[fullname]){tabela_sortkey_promise[fullname]=new Array();}; tabela_sortkey_promise[fullname][numer_porzadku]=(!tabela_sortkey_promise[fullname][numer_porzadku])?(TworzenieTablicyTytułowejNazwSortowaniaStron(DodatkiSkrypt.Info.page.fullname,0)):tabela_sortkey_promise[fullname][numer_porzadku]; return tabela_sortkey_promise[fullname][numer_porzadku].DodatkiSkryptThen(function(tabela_sortkey){ if(!czy_zagniezdzone){ if(numer_porzadku!=2){ var category_a=$(wezel).find('> ul:last-child > li').find(' > .CategoryTreeSection > .CategoryTreeItem > span.CategoryTreeBullet + bdi > a, > .CategoryTreeSection > .CategoryTreeItem > span.CategoryTreeEmptyBullet + bdi > a'); }else{ var category_a=$(media||kategorie).find(' > ul.gallery > li.gallerybox > div.gallerytext > a.galleryfilename'); } }else{ var category_a=$(wezel).find(' > .CategoryTreeSection > .CategoryTreeItem > span.CategoryTreeBullet + bdi > a, > .CategoryTreeSection > .CategoryTreeItem > span.CategoryTreeEmptyBullet + bdi > a'); } var tab_promise=new Array(); var muteks=new DodatkiSkrypt.Muteks(); var czy_koniec=false; for(var p=0;p<category_a.length;++p){ var element_a=category_a[p]; var pozycja_a=element_a.innerHTML; if(pozycja_a==pozycja){ if(!czy_zagniezdzone){ var li=$(element_a).closest('li'); }else{ var li=$(element_a).closest('div.CategoryTreeSection'); } $(li).remove(); } } for(var p=0;p<=category_a.length;++p){ (function(p,category_a){ if(numer_porzadku==0){ if(category_a.length==0){ var modul1=(!czy_zagniezdzone)?DodatkiSkrypt.UruchomPobranePliki('ext.categoryTree.styles'):null; var modul2=(!czy_zagniezdzone)?DodatkiSkrypt.UruchomPobranePliki('ext.categoryTree'):null; } }else if(numer_porzadku==2){ var modul1=(!czy_zagniezdzone)?DodatkiSkrypt.UruchomPobranePliki('mediawiki.page.gallery.styles'):null; var modul2=null;//=DodatkiSkrypt.UruchomPobranePliki('mmv'); } tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ if(czy_koniec){return;} var category_li; var promise_strony=Promise.all([null,null,modul1,modul2]); if(p<category_a.length){ var element_a=category_a[p]; var pozycja_a=element_a.innerHTML; if(numer_porzadku==1){ var promise_przestrzen=DodatkiSkrypt.Scribunto.Nazwy.NAZWAPRZESTRZENI(pozycja_a); var promise_nazwa=DodatkiSkrypt.Scribunto.Nazwy.NAZWASTRONY(pozycja_a); }else{ var promise_przestrzen=Promise.resolve(""); var promise_nazwa=Promise.resolve(pozycja_a); } promise_strony=Promise.all([promise_przestrzen,promise_nazwa,modul1,modul2]).DodatkiSkryptThen(function(data){ var przestrzen_strony=data[0];var nazwa_strony=data[1]; var nazwa_a=(tabela_sortkey[(((numer_porzadku==0)||(numer_porzadku==2))?(przestrzen+":"):"")+pozycja_a]||"")+nazwa_strony+((numer_porzadku==1 )?przestrzen_strony:("")); var tabs=(new Array(nazwa,nazwa_a)).sort(); if(nazwa==tabs[0]){ category_li=$(element_a).closest((!czy_zagniezdzone)?('li'):('div.CategoryTreeSection')); } return Promise.resolve(data); }); } return promise_strony.DodatkiSkryptThen(function(data){ var przestrzen_strony=data[0];var nazwa_strony=data[1]; if((category_a.length==p)||(category_li)){ var element_wezla; var strona=(((przestrzen)&&(przestrzen!=""))?(przestrzen+":"):"")+pozycja; if(numer_porzadku==0){ var promise_wezel=IleStronKategoriiPlikowJestWDanejKategorii(przestrzen+":"+pozycja); }else{ var promise_wezel=Promise.resolve(); } return promise_wezel.DodatkiSkryptThen(function(data){ if(numer_porzadku==0){ var ile_kategorii=data[0];var ile_stron=data[1];var ile_plikow=data[2]; var tabela_napis=new Array(); if(ile_kategorii>0){tabela_napis.push(ile_kategorii+" kat.");}; if(ile_plikow){tabela_napis.push(ile_plikow+" str.");}; if(ile_stron>0){tabela_napis.push(ile_stron+" pl.")}; var napis; if(tabela_napis.length>0){napis=tabela_napis.join(", ");}else{napis="pusta";}; napis="("+napis+")"; var category_tree_section=mw.html.element('div',{'class':'CategoryTreeSection'}, new mw.html.Raw(mw.html.element('div',{'class':'CategoryTreeItem'}, new mw.html.Raw(((tabela_napis.length>0)?(mw.html.element('span',{'class':'CategoryTreeBullet'}, new mw.html.Raw(mw.html.element('a',{'class':'CategoryTreeToggle','data-ct-title':DodatkiSkrypt.Szereg.Kodowanie.EncodeWiki(pozycja),'aria-expanded':"false",'data-ct-state':"collapsed" ,'title':'rozwiń'},"")+" "))):(mw.html.element('span',{'class':'CategoryTreeEmptyBullet'},"")+" ")) +mw.html.element("bdi",{"dir":"ltr"},new mw.html.Raw(mw.html.element('a',{'href':'/wiki/'+strona,'title':strona},pozycja)))+" " +mw.html.element('span',{'title':'Zawiera '+ile_kategorii+' podkategorii, '+ile_stron+' stron i '+ile_plikow+' plików','dir':'ltr'},napis)) )+mw.html.element('div',{'class':'CategoryTreeChildren','style':'display:none'},""))); if(!czy_zagniezdzone){ element_wezla=mw.html.element('li',{},new mw.html.Raw(category_tree_section)); }else{ element_wezla=category_tree_section; } }else if(numer_porzadku==1){ element_wezla=mw.html.element('li',{},new mw.html.Raw(mw.html.element('a',{'href':"/wiki/"+strona,'title':strona},strona))); }else{ return PobierzInformacjePlikowe(strona).DodatkiSkryptThen(function(data){ var width=data[0];var height=data[1];size=data[2];url=data[3]; if(width>height){ var new_height=parseInt((height/width)*120); var src_width=120; var src_height=new_height; }else{ var new_width=parseInt((width/height)*120); src_width=new_width; src_height=120; } element_wezla=mw.html.element('li',{'class':'gallerybox','style':'155px'},new mw.html.Raw( mw.html.element('div',{'class':'thumb','style':'width:150px;height:150px;'}, new mw.html.Raw(mw.html.element('span',{'typeof':'mw:File'}, new mw.html.Raw(mw.html.element('a',{'class':'"mw-file-description"','href':'/wiki/'+strona}, new mw.html.Raw(mw.html.element('img', { 'alt':strona, 'src':url, 'decoding':"async", 'loading':'lazy', 'width':src_width, 'height':src_height, "data-file-width":width, "data-file-height":height }))))) ))+mw.html.element('div',{'class':'gallerytext'}, new mw.html.Raw(mw.html.element('a',{'class':'galleryfilename galleryfilename-truncate','href':'/wiki/'+strona},pozycja)+width+' × '+height+'; '+size+mw.html.element('br'))) ) ); }); } }).DodatkiSkryptThen(function(){ if(category_li){ var div=document.createElement('div'); div.innerHTML=element_wezla; $(category_li[0]).before(div.firstChild); czy_koniec=true; }else{ if(category_a.length>0){ var div=document.createElement('div'); div.innerHTML=element_wezla; var ul=$(category_a).closest((!czy_zagniezdzone)?('ul'):('div.CategoryTreeChildren')); $(ul).append(div.firstChild); czy_koniec=true; }else{ if(!czy_zagniezdzone){ var element_wezla_pustego=mw.html.element('ul',((numer_porzadku==2)?{'class':'gallery mw-gallery-traditional'}:{}),new mw.html.Raw(element_wezla)); }else{ var element_wezla_pustego=element_wezla; $(wezel).find(' > .CategoryTreeNotice').remove(); } var div=document.createElement('div'); div.innerHTML=element_wezla_pustego; if(numer_porzadku!=2){ $(wezel).append(div.firstChild); }else{ $(kategorie||media).append(div.firstChild); } czy_koniec=true; } } }); } }); },null,muteks)); })(p,category_a); } return Promise.all(tab_promise); }) } this.DodawanieDoStrukturyKategoriiInneStronyZerowegoStopniaRozbudowy=function(pozycja,przestrzen,sortkey){ var ns_14=$('body.ns-14'); if(ns_14.length>0){ var tab={"Kategoria":0,"Plik":2,}; var numer_porzadku=(tab[przestrzen]!=undefined)?tab[przestrzen]:1; pozycja=pozycja.charAt(0).toUpperCase()+pozycja.slice(1); var id=((numer_porzadku==0)?('mw-subcategories'):((numer_porzadku==2)?('mw-category-media'):('mw-pages'))); var element_category_generated=$(DodatkiSkrypt.Szereg.IdCSS(3)).first()[0]; var pagename=DodatkiSkrypt.Szereg.Kodowanie.DecodeWiki(DodatkiSkrypt.Info.page.pagename); if(!element_category_generated){ element_category_generated=mw.html.element('div',{'class':'mw-category-generated','lang':'pl','dir':'ltr'}, new mw.html.Raw(mw.html.element('div',{'id':id,}, new mw.html.Raw(mw.html.element('h2',{},((numer_porzadku==0)?("Podkategorie"):((numer_porzadku==1)?("Strony w kategorii „"+pagename+"”"):("Pliki w kategorii „"+pagename+"”"))))+mw.html.element('p',{},((numer_porzadku==0)?("Poniżej wyświetlono 0 spośród wszystkich 0 podkategorii tej kategorii."):((numer_porzadku==1)?("Poniżej wyświetlono 0 spośród wszystkich 0 stron tej kategorii."):("Poniżej wyświetlono 0 spośród wszystkich 0 plików w tej kategorii. "))))+((numer_porzadku<2)?(mw.html.element('div',{'class':'mw-content-ltr','lang':'pl','dir':'ltr',},new mw.html.Raw(mw.html.element('div',{'class':'mw-category'},"")))):("")))) ) ); var element_div=document.createElement('div'); element_div.innerHTML=element_category_generated; var mw_content_text=document.querySelector(DodatkiSkrypt.Szereg.IdCSS(2)); var element=$(DodatkiSkrypt.Szereg.IdCSS(2)).find('> .mw-parser-output + :not(.mw-parser-output)').first()[0]; if(element){ element_category_generated=$(element).DodatkiSkryptBefore(element_div.firstChild)[0]; }else{ element_category_generated=$(mw_content_text).DodatkiSkryptAppend(element_div.firstChild)[0]; } }else{ var sub=$(element_category_generated).children('p:only-child'); $(sub).remove(); var subcategories=$(DodatkiSkrypt.Szereg.IdCSS(3)).find('> #mw-subcategories').first()[0]; var pages=$(DodatkiSkrypt.Szereg.IdCSS(3)).find('> #mw-pages').first()[0]; var media=$(DodatkiSkrypt.Szereg.IdCSS(3)).find('> #mw-category-media').first()[0]; var kategorie=((numer_porzadku==0)?(subcategories):((numer_porzadku==1)?(pages):(media))); if(!kategorie){ var kategorie=mw.html.element('div',{'id':id,}, new mw.html.Raw(mw.html.element('h2',{},((numer_porzadku==0)?("Podkategorie"):((numer_porzadku==1)?("Strony w kategorii „"+pagename+"”"):("Pliki w kategorii „"+pagename+"”"))))+mw.html.element('p',{},((numer_porzadku==0)?("Poniżej wyświetlono 0 spośród wszystkich 0 podkategorii tej kategorii."):((numer_porzadku==1)?("Poniżej wyświetlono 0 spośród wszystkich 0 stron tej kategorii."):("Poniżej wyświetlono 0 spośród wszystkich 0 plików w tej kategorii."))))+((numer_porzadku<2)?(mw.html.element('div',{'class':'mw-content-ltr','lang':'pl','dir':'ltr',},new mw.html.Raw(mw.html.element('div',{'class':'mw-category'},"")))):("")))); var element_div=document.createElement('div'); element_div.innerHTML=kategorie; if(numer_porzadku==0){ var node_firstchild=element_category_generated.firstChild; if(node_firstchild){ kategorie=$(element_category_generated.firstChild).DodatkiSkryptBefore(element_div.firstChild); }else{ kategorie=$(element_category_generated).DodatkiSkryptAppend(element_div.firstChild); } }else if(numer_porzadku==1){ if(media){ kategorie=$(media).DodatkiSkryptBefore(element_div.firstChild); }else{ kategorie=$(element_category_generated).DodatkiSkryptAppend(element_div.firstChild); } }else{ kategorie=$(element_category_generated).DodatkiSkryptAppend(element_div.firstChild); } } } $(DodatkiSkrypt.Szereg.IdCSS(3)).find('> #'+id+' > p').first().DodatkiSkryptEach(function(i,element){ element.innerHTML=element.innerHTML.replace(/^([^\d]+)(\d+)([^\d]+)(\d+)([^\d]+)$/g,function(a,p1,l1,p2,l2,p3){ return p1+(parseInt(l1)+1)+p2+(parseInt(l2)+1)+p3; }) }) var nazwa=sortkey+pozycja; var wezel; if(numer_porzadku!=2){ var alfabet=(new Array("A","Ą","B","C","Ć","D","E","Ę","F","G","H","I","J","K","L","Ł","M","N","Ń","O","Ó","P","Q","R","S","Ś","T","U","V","W","X","Y","Z","Ź","Ż")).sort().join(""); var pierwsza_litera=nazwa.charAt(0).toUpperCase(); var pozycja_litera=undefined; var category_group_div=$(element_category_generated).find('> #'+id+' > *:last-child > .mw-category > .mw-category-group'); if(category_group_div.length>0){ var category_group_h3=$(category_group_div).find('> h3'); for(var i=0;i<category_group_h3.length;++i){ var element=category_group_h3[i]; var litera=element.innerHTML; if(litera==pierwsza_litera){ pozycja_litera=litera; break; } } } (function(pierwsza_litera){ for(var p=0;p<=category_group_div.length;++p){ if(p<category_group_div.length){ var h3=$(category_group_div[p]).find('> h3')[0]; var h3_tekst=h3.innerHTML; for(var i=0;i<alfabet.length;++i){ var litera=alfabet.charAt(i); var tabs=(new Array(litera,pierwsza_litera)).sort(); if(((!pozycja_litera)&&(litera==tabs[1]))||(pozycja_litera)&&(litera==pierwsza_litera)){ var tabs=(new Array(h3_tekst,pierwsza_litera)).sort(); if((!pozycja_litera)&&(pierwsza_litera==tabs[0])){ var element_wezel=category_group_div[p]; var __wezel=mw.html.element('div',{'class':'mw-category-group',},new mw.html.Raw(mw.html.element('h3',{'class':'is-only-whitespace'},litera))); wezel=document.createElement('div'); wezel.innerHTML=__wezel; if(element_wezel){ wezel=$(element_wezel).DodatkiSkryptBefore(wezel.firstChild); return; }else{ wezel=$(h3).parent().DodatkiSkryptAppend(wezel.firstChild); return; } }else if((pozycja_litera)&&(h3_tekst==pierwsza_litera)){ wezel=$(category_group_div[p]); return; } } } }else{ var pierwsza_litera=nazwa.charAt(0).toUpperCase(); var __wezel=mw.html.element('div',{'class':'mw-category-group',},new mw.html.Raw(mw.html.element('h3',{'class':'is-only-whitespace'},pierwsza_litera))); wezel=document.createElement('div'); wezel.innerHTML=__wezel; var category_group_all=$(element_category_generated).find('> #'+id+' > *:last-child > .mw-category').first()[0]; wezel=$(category_group_all).DodatkiSkryptAppend(wezel.firstChild); return; } } })(pierwsza_litera); } /**/; return WstawPozycjeNaStronieKategoriiWedleDanychStron(DodatkiSkrypt.Szereg.Kodowanie.DecodeWiki(DodatkiSkrypt.Info.page.fullname),numer_porzadku,wezel,przestrzen,pozycja,nazwa,false,media,kategorie); }; } this.AktualizowanieInformacjiOKategoriiNaStronieKategoriowej=function(item){ var categoryTreebullet=((item==null)?$(DodatkiSkrypt.Szereg.IdCSS(3,new Array('> #mw-subcategories > * > .mw-category > .mw-category-group > ul > li > .CategoryTreeSection > .CategoryTreeItem'))):$(item).siblings('.CategoryTreeChildren').children(".CategoryTreeSection").children(".CategoryTreeItem")); var tab_promise=new Array(); var muteks=new DodatkiSkrypt.Muteks(); var czy_modyfikacje_kategorii=false; for(var i=0;i<categoryTreebullet.length;++i){ (function(i,categoryTreebullet){ var element=categoryTreebullet[i]; tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var element_a0=$(element).find('a').first(); var element_a=$(element).find('a').not('.CategoryTreeToggle').first(); var href=$(element_a).attr('href'); href=DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(href,true); var href=href.replace(/^\/wiki\//g,""); return IleJestKategoriiStronIPlikowWKategorii(href,function(ile_kategorii,ile_stron,ile_plikow){ if(ile_kategorii>0){ var str=$(element).siblings('.CategoryTreeChildren'); var display=window.getComputedStyle(str[0], null).getPropertyValue("display"); var str_kategoria=mw.html.element('span',{'class':'CategoryTreeBullet'}, new mw.html.Raw(mw.html.element('a',{'class':'CategoryTreeToggle','data-ct-title':href.replace(/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/g,"").replace(/[\s_]+/g,"_"),'aria-expanded':((display!="none")?"true":"false"),'title':((display!="none")?'zwiń':"rozwiń")},new mw.html.Raw(""))+" ")); }else{ var str_kategoria=mw.html.element('span',{'class':'CategoryTreeEmptyBullet'},"") } var span_full=$(element_a).closest('.CategoryTreeItem').find('span').first(); if((span_full!==null)&&(span_full.length>0)){ var str=$(span_full).parent(); var id=$(str).find('.CategoryTreeToggle'); var data=$(id).data("ct-loaded"); var aktualizacja=$(id).data("ct-aktualizacja"); span_full[0].outerHTML=str_kategoria; var id=$(str).find('.CategoryTreeToggle'); $(id).data("ct-loaded",data); $(id).data("ct-aktualizacja",((data)?true:aktualizacja)); } var dzieci=$(element).children(); if(dzieci.length>2){ var span_ile=dzieci.last(); $(span_ile).attr({'title':"Zawiera "+ile_kategorii+" podkategorie, "+ile_stron+" stron i "+ile_plikow+" plików",'dir':'ltr'}); if(parseInt(ile_kategorii)+parseInt(ile_stron)+parseInt(ile_plikow)>0){ var tab=new Array(); if(ile_kategorii>0){ tab[tab.length]=ile_kategorii+" kat."; } if(ile_stron>0){ tab[tab.length]=ile_stron+" str."; } if(ile_plikow>0){ tab[tab.length]=ile_plikow+" pl."; } span_ile[0].innerHTML="("+tab.join(", ")+")"; }else{ span_ile[0].innerHTML="(pusta)"; } } czy_modyfikacje_kategorii=true; }); },null,muteks)); })(i,categoryTreebullet); } return Promise.all(tab_promise).DodatkiSkryptThen(function(){ return Promise.resolve(czy_modyfikacje_kategorii); }); } var muteks_dodawania=new DodatkiSkrypt.Muteks(); this.DodawanieDoStrukturyKategoriiStronyStronWedleZapisanychZmiennych=function(item){ return $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var ns_14=$('body.ns-14'); if(ns_14.length>0){ var muteks_zdarzenia=new DodatkiSkrypt.Muteks(); var tab_promise_zdarzenia=new Array(); var czy_modyfikacje_kategorii=undefined; tab_promise_zdarzenia.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ if(!item){ var fullname=DodatkiSkrypt.Szereg.Kodowanie.DecodeWiki(DodatkiSkrypt.Info.page.fullname); }else{ var element_a=$(item).find('a').not('.CategoryTreeToggle').first(); var href=$(element_a).attr('href'); href=DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(href,true); var fullname=DodatkiSkrypt.Szereg.Kodowanie.DecodeWiki(href.replace(/^\/wiki\//g,"")); } var wartosc=DodatkiSkrypt.DodatkiSkryptUserOption.get(fullname,"CzłonkowieKategorii:"); return wartosc.DodatkiSkryptThen(function(data){ if(!data){return;} var tab_strony=data.split("||"); var muteks=new DodatkiSkrypt.Muteks(); var tab_promise=new Array(); for(var i=0;i<tab_strony.length;++i){ (function(i,tab_strony){ var strona;var sortkey;var numer_porzadku;var przestrzen;var nazwa; tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var strona_sort=tab_strony[i]; var tab_strona_sort=strona_sort.split("|"); strona=tab_strona_sort[0]; sortkey=tab_strona_sort[1]||""; var promise_przestrzen=DodatkiSkrypt.Scribunto.Nazwy.NAZWAPRZESTRZENI(strona); var promise_pozycja=DodatkiSkrypt.Scribunto.Nazwy.NAZWASTRONY(strona); return Promise.all([promise_przestrzen,promise_pozycja]).DodatkiSkryptThen(function(data){ przestrzen=data[0];pozycja=data[1]; if(!item){ return this_zmienna.DodawanieDoStrukturyKategoriiInneStronyZerowegoStopniaRozbudowy(pozycja,przestrzen,sortkey); }else{ var tab={"Kategoria":0,"Plik":2,}; numer_porzadku=(tab[przestrzen]!=undefined)?tab[przestrzen]:1; if(numer_porzadku==0){ var wezel=$(item).siblings('.CategoryTreeChildren'); return WstawPozycjeNaStronieKategoriiWedleDanychStron(fullname,0,wezel,przestrzen,pozycja,sortkey+pozycja,true,null,null); } } }); },null,muteks)); tab_promise.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var tab={"Kategoria":0,"Plik":2,}; numer_porzadku=(tab[przestrzen]!=undefined)?tab[przestrzen]:1; if((!item)||(numer_porzadku==0)){ czy_modyfikacje_kategorii=((czy_modyfikacje_kategorii)||(numer_porzadku==0)); return tabela_sortkey_promise[fullname][numer_porzadku].DodatkiSkryptThen(function(tablica_sortkey){ tablica_sortkey[strona]=sortkey; }); } },null,muteks)); })(i,tab_strony); } return Promise.all(tab_promise); }); },null,muteks_zdarzenia)); tab_promise_zdarzenia.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ return this_zmienna.AktualizowanieInformacjiOKategoriiNaStronieKategoriowej(item).DodatkiSkryptThen(function(data){ czy_modyfikacje_kategorii=data||czy_modyfikacje_kategorii; }); },null,muteks_zdarzenia)); tab_promise_zdarzenia.push($(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var strfun=$(DodatkiSkrypt.Szereg.IdCSS(3,new Array(' > #mw-subcategories .CategoryTreeToggle','.CategoryTreeToggle'))); $(strfun).off('click'); if($(strfun).length>0){DodatkiSkrypt.requireFile('ext.categoryTree')();}; },null,muteks_zdarzenia)); return Promise.all(tab_promise_zdarzenia).DodatkiSkryptThen(function(){ return czy_modyfikacje_kategorii; }); } },null,muteks_dodawania); } this.UstawZdarzeniaKategoriiNaStronieKategoriowej=function(){ var muteks=new DodatkiSkrypt.Muteks(); var FunkcjaWstawianiaZdarzeniowychElementowychFunkcyjnych=function(){ var id=$(this); return $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ var item=$(id).parent().parent(); var promise=new Promise(function(resolve,reject){ var Czekaj=function(){ if($(id).data('ct-loaded')){resolve();}else{setTimeout(Czekaj,0);}; } Czekaj(); }); promise.DodatkiSkryptThen(function(){ if(!$(id).data('ct-aktualizacja')){ $(id).data('ct-aktualizacja',true); var czas=0; var categoryTreeChildrenFun=function(resolve,reject){ var notice=$(id).parents('.CategoryTreeItem').siblings('.CategoryTreeChildren').children('.CategoryTreeNotice'); if((notice!==null)&&(notice.length>0)){ var komunikat=notice[0].innerHTML; if((komunikat=="nic nie znaleziono")||(komunikat=="brak podkategorii")){ resolve("Dobrze"); return; } } var el=$(id).parents('.CategoryTreeItem').siblings('.CategoryTreeChildren').children('.CategoryTreeSection'); if ((el!==null)&&(el.length>0)){resolve("Dobrze");}else{ if(czas>=30000){reject("Dobrze");}else{ setTimeout(function(){categoryTreeChildrenFun(resolve,reject);},300); czas+=300; } } } $(document).DodatkiSkryptPromise(categoryTreeChildrenFun).DodatkiSkryptThen(function(){ $(DodatkiSkrypt.Szereg.IdCSS(3,new Array('> #mw-subcategories .CategoryTreeToggle','.CategoryTreeToggle'))).off('click'); return this_zmienna.DodawanieDoStrukturyKategoriiStronyStronWedleZapisanychZmiennych(item).DodatkiSkryptThen(function(data){ $(DodatkiSkrypt.Szereg.IdCSS(3,new Array('> #mw-subcategories .CategoryTreeToggle','.CategoryTreeToggle'))).on('click', FunkcjaWstawianiaZdarzeniowychElementowychFunkcyjnych); }); }); } }); },null,muteks); } $(DodatkiSkrypt.Szereg.IdCSS(3,new Array('> #mw-subcategories .CategoryTreeToggle','.CategoryTreeToggle'))).on('click', FunkcjaWstawianiaZdarzeniowychElementowychFunkcyjnych); } this.StartSubKategoriesStrona=function(muteks_strona){ if(gadget_uruchom_obsluge_kategorie){ var this_zmienna=this; $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ DodatkiSkrypt.DodatkiSkryptUserOption.set("Kategoria:Szablony z niejawnie błędnymi parametrami","Kategoria:Abłąd|Abłąd2||Kategoria:ZZAbłąd|ZZbłąd2||Kategoria:Szablony - błędy szablonów||Kategoria:Kategorie||Kategoria:Kategorie dla kategorii|Błędy p||Plik:Burza_mozgu.png||Plik:C.pdf|Ag||Plik:Zanurkuj w Pythonie.pdf|Ah","CzłonkowieKategorii:"); DodatkiSkrypt.DodatkiSkryptUserOption.set("Kategoria:Szablon kategoria - nieistniejąca kategoria","Wikipedysta:Persino/brudnopis1||Wikipedysta:Persino/brudnopis||Kategoria:Szablony - błędy szablonów||Kategoria:Kategorie||Plik:Burza_mozgu.png||Plik:C.pdf|Ag||Plik:Zanurkuj w Pythonie.pdf|Ah","CzłonkowieKategorii:"); //var this=new KategorieSubst.KategorieSubst(); var muteks_kategorie=new DodatkiSkrypt.Muteks(); $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ return this_zmienna.DodawanieDoStrukturyKategoriiStronyStronWedleZapisanychZmiennych().DodatkiSkryptThen(function(){ var tab_promise=new Array(); $(DodatkiSkrypt.Szereg.IdCSS(3,new Array('> #mw-subcategories .CategoryTreeSection > .CategoryTreeItem'))).DodatkiSkryptEach(function(i,element){ tab_promise.push(this_zmienna.DodawanieDoStrukturyKategoriiStronyStronWedleZapisanychZmiennych(element,true)); }); return Promise.DodatkiSkryptAll(tab_promise); }); },null,muteks_kategorie); $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(function(){ return this_zmienna.UstawZdarzeniaKategoriiNaStronieKategoriowej(); },null,muteks_kategorie); },null,muteks_strona); } } } /*StronicowyParser.LinkiKategorii*/ var promise=new Promise(function(resolve,reject){ var Czekaj=function(){ if(window.DodatkiSkrypt){ resolve(window.DodatkiSkrypt); }else{ setTimeout(Czekaj,0); } } Czekaj(); }); promise.then(function(DodatkiSkrypt){ var DodatkiStrona=new Array(); DodatkiStrona.NumerSubst=NumerSubst; DodatkiStrona.DymkiSubst=DymkiSubst; DodatkiStrona.SzablonSubst=SzablonSubst; DodatkiStrona.StronaSubst=StronaSubst; DodatkiStrona.KategorieSubst=KategorieSubst; window.DodatkiStrona=DodatkiStrona; }); })(mediaWiki,jQuery); evw709nzz4udthwewiax3rrkszw5prx Wikipedysta:Persino/brudnopis11 2 62939 539988 538710 2026-04-17T19:30:30Z Persino 2851 539988 wikitext text/x-wiki {{Nowiki|{{Link wewnętrzny|strona=Pomoc:Spis treści|uri=tak}}}} ---- {{Nowiki|{{WydobądźLinki|{{lg|Pomoc%3ASpis%20tre%C5%9Bci|uri=tak}}}}}} ---- {{lg|Pomoc%3ASpis%20tre%C5%9Bci|uri=tak}} ---- {{WydobądźLinki|{{lg|Pomoc%3ASpis%20tre%C5%9Bci|uri=tak}}}} {{PobierzNumerArtykułu|Muzyka|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}} --- {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Szablony edycji - błędy wywołań}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony ze złymi uchwytami do obiektów}}}} ---- {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Brak licencji, na stronach głównych, publikacji}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Brakujące spisy treści, dołączonych do stron, stron w innych książkach}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony z dołączonymi innymi stronami, w książkach, z obiektami ze złymi uchwytami}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony z wypowiedzeniami ze złymi uchwytami}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony ze złymi uchwytami do nagłówków}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Artykusły2 dla dzieci2, ze złymi uchwytami do nagłówków}}}} {{sr|#m["PEŁNANAZWAKSIĄŻKI"]()|p=Nazwy - Tom IV}} {{Nowiki|{{lpg|Stołeczne Terytorium Islamabadu|a=tak}}}} 01dv7azdmhbn11lyqrmvfly3eprzol1 539989 539988 2026-04-17T19:46:09Z Persino 2851 539989 wikitext text/x-wiki {{Nowiki|{{Link wewnętrzny|strona=Pomoc:Spis treści|uri=tak}}}} ---- {{Nowiki|{{WydobądźLinki|{{lg|Pomoc%3ASpis%20tre%C5%9Bci|uri=tak}}}}}} ---- {{lg|Pomoc%3ASpis%20tre%C5%9Bci|uri=tak}} ---- {{WydobądźLinki|{{lg|Pomoc%3ASpis%20tre%C5%9Bci|uri=tak}}}} {{PobierzNumerArtykułu|Muzyka|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}} --- {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Szablony edycji - błędy wywołań}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony ze złymi uchwytami do obiektów}}}} ---- {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Brak licencji, na stronach głównych, publikacji}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Brakujące spisy treści, dołączonych do stron, stron w innych książkach}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony z dołączonymi innymi stronami, w książkach, z obiektami ze złymi uchwytami}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony z wypowiedzeniami ze złymi uchwytami}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony ze złymi uchwytami do nagłówków}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Artykusły2 dla dzieci2, ze złymi uchwytami do nagłówków}}}} {{sr|#m["PEŁNANAZWAKSIĄŻKI"]()|p=Nazwy - Tom IV}} {{Nowiki|{{lpg|Stołeczne Terytorium Islamabadu|a=}}}} c3rdncnxz15lvx2ppvfgopaizm9po47 539990 539989 2026-04-17T19:47:39Z Persino 2851 539990 wikitext text/x-wiki {{Nowiki|{{Link wewnętrzny|strona=Pomoc:Spis treści|uri=tak}}}} ---- {{Nowiki|{{WydobądźLinki|{{lg|Pomoc%3ASpis%20tre%C5%9Bci|uri=tak}}}}}} ---- {{lg|Pomoc%3ASpis%20tre%C5%9Bci|uri=tak}} ---- {{WydobądźLinki|{{lg|Pomoc%3ASpis%20tre%C5%9Bci|uri=tak}}}} {{PobierzNumerArtykułu|Muzyka|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}} --- {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Szablony edycji - błędy wywołań}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony ze złymi uchwytami do obiektów}}}} ---- {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Brak licencji, na stronach głównych, publikacji}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Brakujące spisy treści, dołączonych do stron, stron w innych książkach}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony z dołączonymi innymi stronami, w książkach, z obiektami ze złymi uchwytami}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony z wypowiedzeniami ze złymi uchwytami}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony ze złymi uchwytami do nagłówków}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Artykusły2 dla dzieci2, ze złymi uchwytami do nagłówków}}}} {{sr|#m["PEŁNANAZWAKSIĄŻKI"]()|p=Nazwy - Tom IV}} {{Nowiki|{{lpg|Stołeczne Terytorium Islamabadu|a=}}}} {{Nowiki|{{lpg|Stołeczne Terytorium Islamabadu|a=tak}}}} kz6gqk6bbk63jl6a7vt1hf5rcf9kge5 Zioła i przyprawy 0 63445 539974 539927 2026-04-17T19:05:02Z EdytaT 2664 /* Kompozycje przyprawowe */ 539974 wikitext text/x-wiki {{status|-25%|Kulinaria|Zielarstwo}} {{Rozdział|Podręcznik|Zioła i przyprawy}} <small>< [[Zioła i przyprawy/Okładka|Okładka]]</small> {{FormularzWejścia|typ=search|szerokość=40|przestrzenie=(Główna)**|przedrostek=Zioła i przyprawy|szukaj=Szukaj|przerwa=no|zastępczy=Wyszukaj}} == Spis treści == ===Zioła i przyprawy === # [[Zioła i przyprawy/Kolendra siewna|Kolendra]] # [[Zioła i przyprawy/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] === Kompozycje przyprawowe === # [[Zioła i przyprawy/Bouquet garni|Bouquet garni]] # [[Zioła i przyprawy/Swańska sól|Swańska sól]] # [[Zioła i przyprawy/Zioła prowansalskie|Zioła prowansalskie]] == [[Zioła i przyprawy/Słowniczek|Słowniczek]] == == [[Zioła i przyprawy/Bibliografia|Bibliografia]] == fn8y3imlup1hsrwzppru3cghsfq7fk2 540004 539974 2026-04-18T09:43:21Z EdytaT 2664 540004 wikitext text/x-wiki {{status|-25%|Kulinaria|Zielarstwo}} {{Rozdział|Podręcznik|Zioła i przyprawy}} <small>< [[Zioła i przyprawy/Okładka|Okładka]]</small> {{FormularzWejścia|typ=search|szerokość=40|przestrzenie=(Główna)**|przedrostek=Zioła i przyprawy|szukaj=Szukaj|przerwa=no|zastępczy=Wyszukaj}} == Spis treści == === Zioła i przyprawy === # [[Zioła i przyprawy/Kolendra siewna|Kolendra]] # [[Zioła i przyprawy/Liść laurowy|Liść laurowy]] === Kompozycje przyprawowe === # [[Zioła i przyprawy/Bouquet garni|Bouquet garni]] # [[Zioła i przyprawy/Swańska sól|Swańska sól]] # [[Zioła i przyprawy/Zioła prowansalskie|Zioła prowansalskie]] === Przyprawy do zup === ==== Barszcz ==== * Do klasycznego barszczu czerwonego daj [[Zioła i przyprawy/Liść laurowy|liść laurowy]], [[Zioła i przyprawy/Ziele angoelskie|ziele angielskie]], [[Zioła i przyprawy/Pieprz czarny|czarny pieprz]] (w ziarnach), [[Zioła i przyprawy/Czosnek|czosnek]] oraz , [[Zioła i przyprawy/Majeranek|majeranek]]. == [[Zioła i przyprawy/Słowniczek|Słowniczek]] == == [[Zioła i przyprawy/Bibliografia|Bibliografia]] == 840u3wm5q1z4obwmndhdp20qez1jm79 540011 540004 2026-04-18T09:49:54Z EdytaT 2664 540011 wikitext text/x-wiki {{status|-25%|Kulinaria|Zielarstwo}} {{Rozdział|Podręcznik|Zioła i przyprawy}} <small>< [[Zioła i przyprawy/Okładka|Okładka]]</small> {{FormularzWejścia|typ=search|szerokość=40|przestrzenie=(Główna)**|przedrostek=Zioła i przyprawy|szukaj=Szukaj|przerwa=no|zastępczy=Wyszukaj}} == Spis treści == === Zioła i przyprawy === # [[Zioła i przyprawy/Kolendra siewna|Kolendra]] # [[Zioła i przyprawy/Liść laurowy|Liść laurowy]] === Kompozycje przyprawowe === # [[Zioła i przyprawy/Bouquet garni|Bouquet garni]] # [[Zioła i przyprawy/Swańska sól|Swańska sól]] # [[Zioła i przyprawy/Zioła prowansalskie|Zioła prowansalskie]] === Przyprawianie zup === ==== Barszcz ==== * Do klasycznego barszczu czerwonego daj [[Zioła i przyprawy/Liść laurowy|liść laurowy]], [[Zioła i przyprawy/Ziele angoelskie|ziele angielskie]], [[Zioła i przyprawy/Pieprz czarny|czarny pieprz]] (w ziarnach), [[Zioła i przyprawy/Czosnek|czosnek]] oraz , [[Zioła i przyprawy/Majeranek|majeranek]]. == [[Zioła i przyprawy/Słowniczek|Słowniczek]] == == [[Zioła i przyprawy/Bibliografia|Bibliografia]] == ruf0c6gzirquxr3f4ji3tbohx6np12t 540018 540011 2026-04-18T11:07:49Z EdytaT 2664 /* Barszcz */ 540018 wikitext text/x-wiki {{status|-25%|Kulinaria|Zielarstwo}} {{Rozdział|Podręcznik|Zioła i przyprawy}} <small>< [[Zioła i przyprawy/Okładka|Okładka]]</small> {{FormularzWejścia|typ=search|szerokość=40|przestrzenie=(Główna)**|przedrostek=Zioła i przyprawy|szukaj=Szukaj|przerwa=no|zastępczy=Wyszukaj}} == Spis treści == === Zioła i przyprawy === # [[Zioła i przyprawy/Kolendra siewna|Kolendra]] # [[Zioła i przyprawy/Liść laurowy|Liść laurowy]] === Kompozycje przyprawowe === # [[Zioła i przyprawy/Bouquet garni|Bouquet garni]] # [[Zioła i przyprawy/Swańska sól|Swańska sól]] # [[Zioła i przyprawy/Zioła prowansalskie|Zioła prowansalskie]] === Przyprawianie zup === ==== Barszcz ==== * Do klasycznego barszczu czerwonego zaraz na początku gotowania daj [[Zioła i przyprawy/Liść laurowy|liść laurowy]], [[Zioła i przyprawy/Ziele angielskie|ziele angielskie]], [[Zioła i przyprawy/Pieprz czarny|czarny pieprz]] w ziarnach. * Kilka [[Zioła i przyprawy/Suszone grzyby|suszonych grzybów]] nadaje głęboki smak. * Charakterystyczną kwaskowatość otrzymasz dodając trochę kiszonych buraków albo [[Zioła i przyprawy/Ocet|octu jabłkowego]] lub soku z [[Zioła i przyprawy/Cytryna|cytryny]]. * [[Zioła i przyprawy/Cukier|Szczypta cukru]], trochę [[Zioła i przyprawy/Miód|miodu]] lub odrobina soku z jabłka. * [[Zioła i przyprawy/Majeranek|Majeranek]] dodaj na koniec gotowania. == [[Zioła i przyprawy/Słowniczek|Słowniczek]] == == [[Zioła i przyprawy/Bibliografia|Bibliografia]] == 14hrrdyp0xsbzbwm8z2x9dhzne8tlfm Wikibooks:Moduły/Html 4 63462 539951 539946 2026-04-17T12:07:05Z Persino 2851 /* {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} */ 539951 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == == {{Code|p.DecodeWiki(...)}} == == {{Code|p.IsEncodedHtml(...)}} == == {{Code|p.EncodeHtml(...)}} == == {{Code|p.DecodeHtml(...)}} == == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> pdcis1tp5nxr2bvcbs6pv24g4rngo6n 539952 539951 2026-04-17T13:22:22Z Persino 2851 /* {{Code|p.EncodeWiki(...)}} */ 539952 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjolnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|mw.text.encode}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == == {{Code|p.IsEncodedHtml(...)}} == == {{Code|p.EncodeHtml(...)}} == == {{Code|p.DecodeHtml(...)}} == == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> q3akyl9958eun9bbdau3kbig6bfumqa 539953 539952 2026-04-17T13:53:08Z Persino 2851 /* {{Code|p.EncodeWiki(...)}} */ 539953 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjolnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == == {{Code|p.IsEncodedHtml(...)}} == == {{Code|p.EncodeHtml(...)}} == == {{Code|p.DecodeHtml(...)}} == == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> c9oda3bgjs2ms95mjxxbq3ml0kddilj 539954 539953 2026-04-17T14:06:49Z Persino 2851 /* {{Code|p.EncodeWiki(...)}} */ 539954 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == == {{Code|p.IsEncodedHtml(...)}} == == {{Code|p.EncodeHtml(...)}} == == {{Code|p.DecodeHtml(...)}} == == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> k1hia1aqjqw3u4yt8jfe9vixccmps7k 539955 539954 2026-04-17T14:14:03Z Persino 2851 /* {{Code|p.EncodeWiki(...)}} */ 539955 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == == {{Code|p.IsEncodedHtml(...)}} == == {{Code|p.EncodeHtml(...)}} == == {{Code|p.DecodeHtml(...)}} == == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 49lxdi67b7h37jl7840trzlcq4jg2n0 539956 539955 2026-04-17T14:14:50Z Persino 2851 /* {{Code|p.DecodeWiki(...)}} */ 539956 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == == {{Code|p.EncodeHtml(...)}} == == {{Code|p.DecodeHtml(...)}} == == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> gku5jxfrpvfsrnnw42s158u4x3wkw7b 539957 539956 2026-04-17T14:28:51Z Persino 2851 /* {{Code|p.DecodeWiki(...)}} */ 539957 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == == {{Code|p.EncodeHtml(...)}} == == {{Code|p.DecodeHtml(...)}} == == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> pbd0nculpapxuz33w4ug8fcq55m85pr 539958 539957 2026-04-17T15:18:54Z Persino 2851 /* {{Code|p.IsEncodedHtml(...)}} */ 539958 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=false, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=true; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == == {{Code|p.DecodeHtml(...)}} == == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 3xqbr2iyjk3136qhdc5h66n6j2hhald 539959 539958 2026-04-17T15:22:06Z Persino 2851 /* {{Code|p.IsEncodedHtml(...)}} */ 539959 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == == {{Code|p.DecodeHtml(...)}} == == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 7y3kgaqkpbys5cu62atzubibtjzrzfb 539960 539959 2026-04-17T16:47:11Z Persino 2851 /* {{Code|p.EncodeWiki(...)}} */ 539960 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == == {{Code|p.DecodeHtml(...)}} == == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4drquihp1td9rm4b69b6wz1pat0yidy 539961 539960 2026-04-17T16:47:59Z Persino 2851 /* {{Code|p.DecodeWiki(...)}} */ 539961 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == == {{Code|p.DecodeHtml(...)}} == == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> po52mwceb3ekkiri2ivdf0k7oy65fx5 539962 539961 2026-04-17T17:00:12Z Persino 2851 /* {{Code|p.EncodeHtml(...)}} */ 539962 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcjąL {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="abc___?edit=action"; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> local parametr2="abc_?edit=action"; </syntaxhighlight> {{Hr}} Przykłady drugi: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="a%YTbc___?edit=action;""; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> local parametr2="a%25YTbc___%3Fedit%3Daction;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 3p6bp0hhsdk8gt9y3zl9qnzrakouy6j 539963 539962 2026-04-17T17:07:00Z Persino 2851 /* {{Code|p.EncodeHtml(...)}} */ 539963 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcjąL {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___?edit=action"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze; local parametr2="abc_?edit=action"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?edit=action;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode; local parametr2="a%25YTbc___%3Fedit%3Daction;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> haamng6qyxld9ikm5tahd7n5y25i3b8 539964 539963 2026-04-17T17:09:35Z Persino 2851 /* {{Code|p.EncodeHtml(...)}} */ 539964 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcjąL {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___?edit=action"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze; local parametr2="abc_?edit=action"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?edit=action;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Fedit%3Daction;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> qhokk76hlpz47mc4j2u8jrq9y3y0rmh 539965 539964 2026-04-17T17:23:26Z Persino 2851 /* {{Code|p.EncodeHtml(...)}} */ 539965 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcjąL {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki; local parametr2="abc_?action=edit#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> lz2j4yf4szdsbyuk2ndskuot8ck9yet 539966 539965 2026-04-17T17:29:09Z Persino 2851 /* {{Code|p.EncodeHtml(...)}} */ 539966 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4vijypycg0mxezq53tczc7w03z62iad 539967 539966 2026-04-17T18:37:27Z Persino 2851 /* {{Code|p.DecodeHtml(...)}} */ 539967 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> drc3y7wv4kib0fn3pn3n3fye9e5b77q 539968 539967 2026-04-17T18:41:40Z Persino 2851 /* {{Code|p.DecodeHtml(...)}} */ 539968 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8nq9wah4e99k7quuvgocw6b63c7mvr1 540013 539968 2026-04-18T10:28:40Z Persino 2851 /* {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} */ 540013 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody {{Strong|HTML}}, a także znaki lewego ukośnika {{Code|<nowiki>\</nowiki>}} też na to. <syntaxhighlight lang="lua"> function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)...end; </syntaxhighlight> Parametry: * {{Code|znacznik}} - atrybut do przetwarzania, aby w nim zamienić niektóre znaki, które przeszkadzają w analizie na kody {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 71hpogofrg5zgdg6rprbbinzlpq6bzu 540014 540013 2026-04-18T10:37:12Z Persino 2851 /* {{Code|p.DecodeHtml(...)}} */ 540014 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody {{Strong|HTML}}, a także znaki lewego ukośnika {{Code|<nowiki>\</nowiki>}} też na to. <syntaxhighlight lang="lua"> function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)...end; </syntaxhighlight> Parametry: * {{Code|znacznik}} - atrybut do przetwarzania, aby w nim zamienić niektóre znaki, które przeszkadzają w analizie na kody {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> lf4ssqf3p4dpbu6h85poyladnvmr1wc 540015 540014 2026-04-18T10:37:39Z Persino 2851 /* {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} */ 540015 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody {{Strong|HTML}}, a także znaki lewego ukośnika {{Code|<nowiki>\</nowiki>}} też na to. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)...end; </syntaxhighlight> Parametry: * {{Code|znacznik}} - atrybut do przetwarzania, aby w nim zamienić niektóre znaki, które przeszkadzają w analizie na kody {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 56d2j6o3o2cup97fn3mklgak0fswrz3 540016 540015 2026-04-18T10:50:08Z Persino 2851 /* {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} */ 540016 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody {{Strong|HTML}}, a także znaki lewego ukośnika {{Code|<nowiki>\</nowiki>}} też na to. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)...end; </syntaxhighlight> Parametry: * {{Code|znacznik}} - atrybut do przetwarzania, aby w nim zamienić niektóre znaki, które przeszkadzają w analizie na kody {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href="/wiki/Strona?tytan1=1&tytan2=2">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> k596qqhunuk646ofwp86a0fnn634wcf 540017 540016 2026-04-18T11:03:32Z Persino 2851 /* {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} */ 540017 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się kodami {{Strong|HTML}}, zamieniania znaków na ich kody, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łącznie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NAZWASERWISU|link=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany na kody klasy znakowej do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_moablon:Link_wewn%C4dul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak {{Code|8206}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak, o kodzie dziesiętnym "8206", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody {{Strong|HTML}}, a także znaki lewego ukośnika {{Code|<nowiki>\</nowiki>}} też na to. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)...end; </syntaxhighlight> Parametry: * {{Code|znacznik}} - atrybut do przetwarzania, aby w nim zamienić niektóre znaki, które przeszkadzają w analizie na kody {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == == {{Code|p["ParametryStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyAdresu"](frame,...)}} == == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == == {{Code|p["URLStrona"](frame)}} == == {{Code|p["UrlBezProtokołu"](frame)}} == == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == == {{Code|p.ZamianaEncodeTekst(tekst)}} == == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == == {{Code|p.StronaParametryIdentyfikacja(adres)}} == == {{Code|p.TworzenieAdresuHtml(strona,...)}} == == {{Code|p.TworzenieStronaParametryIdentyfikacja(adres,...)}} == == {{Code|p.ParametryEncodeURL(adres,...)}} == == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == == {{Code|p.EncodeParametryHtml(parametr,...)}} == == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == == {{Code|p.AdresBezProtokolarnyEncodeURL(adres)}} == == {{Code|p.UriEncode(frame)}} == == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> rywxgenkg759an3c6khnw4o4il71ibj Zioła i przyprawy/Liść laurowy 0 63469 539996 539929 2026-04-18T08:10:59Z EdytaT 2664 539996 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Wawrzyn szlachetny (liść laurowy)}} [[Plik:Laurus nobilis (5).JPG|thumb|Liście laurowe]] {{wikipedia|Wawrzyn szlachetny}} {{wikipedia|Liść laurowy}} {{wikisłownik|wawrzyn szlachetny}} {{wikisłownik|Liść laurowy}} {{Wikibooks|Ekoogrodnictwo/Rośliny użytkowe/Wawrzyn szlachetny|wawrzynu szlachetnego}} == Wawrzyn szlachetny (liście laurowe) == * Do potraw można dodać zarówno świeże jak i suszone liście laurowe. * Pod względem smaku liście świeże i suszone znacznie się od siebie różnią. * Świeże liście smakują intensywniej, gorzko-pikantnie oraz zawierają więcej [[w:Garbniki|garbników]]. Należy je stosować umiarkowanie - często wystarczy połowa świeżego liścia zamiast jednego-dwóch suszonych. == Potrawy == * Potrawy duszone i pieczone :* Pieczeń wołowa :* Gulasz :* Dziczyzna :* Duszony drób * Wywary warzywne, mięsne, rybne * Zupy :* Rosoły :* Zupy z warzyw korzeniowych (kartoflanka, grochówka, barszcz) * Przeciery i sosy pomidorowe == Kompozycje smakowe == * Liść laurowy jest składnikiem [[Zioła i przyprawy/Bouquet garni|bouquet garni (pęczek ziół)]]. == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> bx0ivxhfdz2ow1isocregb7yg9snvqe 539998 539996 2026-04-18T08:16:09Z EdytaT 2664 539998 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Wawrzyn szlachetny (liść laurowy)}} [[Plik:Laurus nobilis (5).JPG|thumb|Liście laurowe]] {{wikipedia|Wawrzyn szlachetny}} {{wikipedia|Liść laurowy}} {{wikisłownik|wawrzyn szlachetny}} {{wikisłownik|Liść laurowy}} {{Wikibooks|Ekoogrodnictwo/Rośliny użytkowe/Wawrzyn szlachetny|wawrzynu szlachetnego}} == Wawrzyn szlachetny (liście laurowe) == * Do potraw można dodać zarówno świeże jak i suszone liście laurowe. * Pod względem smaku liście świeże i suszone znacznie się od siebie różnią. * Świeże liście smakują intensywniej, gorzko-pikantnie oraz zawierają więcej [[w:Garbniki|garbników]]. Należy je stosować umiarkowanie - często wystarczy połowa świeżego liścia zamiast jednego-dwóch suszonych. == Potrawy == * Potrawy duszone i pieczone :* Pieczeń wołowa :* Gulasz :* Dziczyzna :* Duszony drób * Wywary warzywne, mięsne, rybne * Zupy :* Rosoły :* Zupy z warzyw korzeniowych (kartoflanka, grochówka, [[b:Kategoria:Barszcze|barszcze]]) * Przeciery i sosy pomidorowe == Kompozycje smakowe == * Liść laurowy jest składnikiem [[Zioła i przyprawy/Bouquet garni|bouquet garni (pęczek ziół)]]. == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> pe2en7b2qcdila679nsua9h3qi99bmx 540001 539998 2026-04-18T09:40:27Z EdytaT 2664 EdytaT przeniósł(-osła) stronę [[Zioła i przyprawy/Wawrzyn szlachetny]] do [[Zioła i przyprawy/Liść laurowy]]: Piszac o przyprawach lepiej jednak konkretnie nazwac przyprawy, a nie rosliny, z ktorej pochodza. 539998 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Wawrzyn szlachetny (liść laurowy)}} [[Plik:Laurus nobilis (5).JPG|thumb|Liście laurowe]] {{wikipedia|Wawrzyn szlachetny}} {{wikipedia|Liść laurowy}} {{wikisłownik|wawrzyn szlachetny}} {{wikisłownik|Liść laurowy}} {{Wikibooks|Ekoogrodnictwo/Rośliny użytkowe/Wawrzyn szlachetny|wawrzynu szlachetnego}} == Wawrzyn szlachetny (liście laurowe) == * Do potraw można dodać zarówno świeże jak i suszone liście laurowe. * Pod względem smaku liście świeże i suszone znacznie się od siebie różnią. * Świeże liście smakują intensywniej, gorzko-pikantnie oraz zawierają więcej [[w:Garbniki|garbników]]. Należy je stosować umiarkowanie - często wystarczy połowa świeżego liścia zamiast jednego-dwóch suszonych. == Potrawy == * Potrawy duszone i pieczone :* Pieczeń wołowa :* Gulasz :* Dziczyzna :* Duszony drób * Wywary warzywne, mięsne, rybne * Zupy :* Rosoły :* Zupy z warzyw korzeniowych (kartoflanka, grochówka, [[b:Kategoria:Barszcze|barszcze]]) * Przeciery i sosy pomidorowe == Kompozycje smakowe == * Liść laurowy jest składnikiem [[Zioła i przyprawy/Bouquet garni|bouquet garni (pęczek ziół)]]. == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> pe2en7b2qcdila679nsua9h3qi99bmx 540003 540001 2026-04-18T09:41:14Z EdytaT 2664 540003 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Wawrzyn szlachetny (liść laurowy)}} [[Plik:Laurus nobilis (5).JPG|thumb|Liście laurowe]] {{wikipedia|Liść laurowy}} {{wikisłownik|Liść laurowy}} {{Wikibooks|Ekoogrodnictwo/Rośliny użytkowe/Wawrzyn szlachetny|wawrzynu szlachetnego}} == Liść laurowy == * Do potraw można dodać zarówno świeże jak i suszone liście laurowe. * Pod względem smaku liście świeże i suszone znacznie się od siebie różnią. * Świeże liście smakują intensywniej, gorzko-pikantnie oraz zawierają więcej [[w:Garbniki|garbników]]. Należy je stosować umiarkowanie - często wystarczy połowa świeżego liścia zamiast jednego-dwóch suszonych. == Potrawy == * Potrawy duszone i pieczone :* Pieczeń wołowa :* Gulasz :* Dziczyzna :* Duszony drób * Wywary warzywne, mięsne, rybne * Zupy :* Rosoły :* Zupy z warzyw korzeniowych (kartoflanka, grochówka, [[b:Kategoria:Barszcze|barszcze]]) * Przeciery i sosy pomidorowe == Kompozycje smakowe == * Liść laurowy jest składnikiem [[Zioła i przyprawy/Bouquet garni|bouquet garni (pęczek ziół)]]. == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> oa43ynohkrksacqcu1j8v0fhohsevok Zioła i przyprawy/Bouquet garni 0 63471 540007 539926 2026-04-18T09:45:43Z EdytaT 2664 540007 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Bouquet garni (pęczek ziół)}} [[Plik:Bouquet garni 01.jpg|thumb|Bouquet garni]] {{wikipedia|Bouquet garni}} {{wikisłownik|bouquet garni}} == Bouquet garni (pęczek ziół) == * Klasycznie: :* trzy gałązki [[Zioła i przyprawy/Pietruszka|pietruszki]], jedna mała gałązka [[Zioła i przyprawy/Tymianek|tymianku]] i jeden nieduży [[Zioła i przyprawy/Liść laurowy|liść laurowy]] == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> hol438gbrvfor6ztz6ldjepd8z0ie9f Zioła i przyprawy/Zioła prowansalskie 0 63472 540008 539936 2026-04-18T09:46:55Z EdytaT 2664 540008 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Zioła prowansalskie}} [[Plik:Corbeille d'herbes de Provence.jpg|thumb|Zioła prowansalskie]] {{wikipedia|Zioła prowansalskie}} == Zioła prowansalskie == W skład ziół prowansalskich wchodzą m. in. * [[Zioła i przyprawy/Macierzanka tymianek|macierzanka tymianek (tymianek)]], [[Zioła i przyprawy/Macierzanka piaskowa|macierzanka piaskowa]], [[Zioła i przyprawy/Lebiodka majeranek|lebiodka majeranek (majeranek)]], [[Zioła i przyprawy/Lebiodka pospolita|lebiodka pospolita (oregano)]], [[Zioła i przyprawy/Rozmaryn lekarski|rozmaryn lekarski (rozmaryn)]], [[Zioła i przyprawy/Bazylia pospolita|bazylia pospolita (bazylia)]], [[Zioła i przyprawy/Trybula ogrodowa|trybula ogrodowa (trybula)]], [[Zioła i przyprawy/Bylica draganek|bylica draganek (estragon}]], [[Zioła i przyprawy/Lubczyk ogrodowy|lubczyk ogrodowy]], [[Zioła i przyprawy/Cząber ogrodowy|cząber ogrodowy]], [[Zioła i przyprawy/Liść laurowy|liść laurowy]], [[Zioła i przyprawy/Szałwia lekarska|szałwia lekarska]], [[Zioła i przyprawy/Fenkuł włoski|fenkuł włoski (koper włoski)]]. * Wersja klasyczna: :* 27 % [[Zioła i przyprawy/Cząber ogrodowy|cząbru]] :* 27 % [[Zioła i przyprawy/Rozmaryn lekarski|rozmarynu]] :* 19 % [[Zioła i przyprawy/Macierzanka tymianek|tymianku]] :* 27 % [[Zioła i przyprawy/Lebiodka pospolita|oregano)]] * Warianty: :* często dodatek [[Zioła i przyprawy/Lawenda wąskolistna|lawendy]]. :* czasem dodatek [[Zioła i przyprawy/Bazylia pospolita|bazylii]], [[Zioła i przyprawy/Bylica draganek|estragonu]], nasiona [[Zioła i przyprawy/Fenkuł włoski|kopru włoskiego]], [[Zioła i przyprawy/Trybula ogrodowa|trybul]], [[Zioła i przyprawy/Wawrzyn szlachetny|liścia laurowego]], [[Zioła i przyprawy/Jałowiec pospolity|jałowca]]. :* niektórzy producenci dodają [[Zioła i przyprawy/Lubczyk ogrodowy|lubczyk]], [[Zioła i przyprawy/Pietruszka|pietruszkę]], [[Zioła i przyprawy/Szałwia lekarska|szałwię]]. == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> d56zeid916a3qsa5d02y83bugirekt4 540009 540008 2026-04-18T09:47:34Z EdytaT 2664 540009 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Zioła prowansalskie}} [[Plik:Corbeille d'herbes de Provence.jpg|thumb|Zioła prowansalskie]] {{wikipedia|Zioła prowansalskie}} == Zioła prowansalskie == W skład ziół prowansalskich wchodzą m. in. * [[Zioła i przyprawy/Macierzanka tymianek|macierzanka tymianek (tymianek)]], [[Zioła i przyprawy/Macierzanka piaskowa|macierzanka piaskowa]], [[Zioła i przyprawy/Lebiodka majeranek|lebiodka majeranek (majeranek)]], [[Zioła i przyprawy/Lebiodka pospolita|lebiodka pospolita (oregano)]], [[Zioła i przyprawy/Rozmaryn lekarski|rozmaryn lekarski (rozmaryn)]], [[Zioła i przyprawy/Bazylia pospolita|bazylia pospolita (bazylia)]], [[Zioła i przyprawy/Trybula ogrodowa|trybula ogrodowa (trybula)]], [[Zioła i przyprawy/Bylica draganek|bylica draganek (estragon}]], [[Zioła i przyprawy/Lubczyk ogrodowy|lubczyk ogrodowy]], [[Zioła i przyprawy/Cząber ogrodowy|cząber ogrodowy]], [[Zioła i przyprawy/Liść laurowy|liść laurowy]], [[Zioła i przyprawy/Szałwia lekarska|szałwia lekarska]], [[Zioła i przyprawy/Fenkuł włoski|fenkuł włoski (koper włoski)]]. * Wersja klasyczna: :* 27 % [[Zioła i przyprawy/Cząber ogrodowy|cząbru]] :* 27 % [[Zioła i przyprawy/Rozmaryn lekarski|rozmarynu]] :* 19 % [[Zioła i przyprawy/Macierzanka tymianek|tymianku]] :* 27 % [[Zioła i przyprawy/Lebiodka pospolita|oregano)]] * Warianty: :* często dodatek [[Zioła i przyprawy/Lawenda wąskolistna|lawendy]]. :* czasem dodatek [[Zioła i przyprawy/Bazylia pospolita|bazylii]], [[Zioła i przyprawy/Bylica draganek|estragonu]], nasiona [[Zioła i przyprawy/Fenkuł włoski|kopru włoskiego]], [[Zioła i przyprawy/Trybula ogrodowa|trybul]], [[Zioła i przyprawy/Liść laurowy|liścia laurowego]], [[Zioła i przyprawy/Jałowiec pospolity|jałowca]]. :* niektórzy producenci dodają [[Zioła i przyprawy/Lubczyk ogrodowy|lubczyk]], [[Zioła i przyprawy/Pietruszka|pietruszkę]], [[Zioła i przyprawy/Szałwia lekarska|szałwię]]. == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> h14u5qtsot1xr4rgl7cq4n9on77qe46 540019 540009 2026-04-18T11:09:11Z EdytaT 2664 540019 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Zioła prowansalskie}} [[Plik:Corbeille d'herbes de Provence.jpg|thumb|Zioła prowansalskie]] {{wikipedia|Zioła prowansalskie}} == Zioła prowansalskie == W skład ziół prowansalskich wchodzą m. in. * [[Zioła i przyprawy/Macierzanka tymianek|macierzanka tymianek (tymianek)]], [[Zioła i przyprawy/Macierzanka piaskowa|macierzanka piaskowa]], [[Zioła i przyprawy/|Majeranek|majeranek]], [[Zioła i przyprawy/Lebiodka pospolita|lebiodka pospolita (oregano)]], [[Zioła i przyprawy/Rozmaryn lekarski|rozmaryn lekarski (rozmaryn)]], [[Zioła i przyprawy/Bazylia pospolita|bazylia pospolita (bazylia)]], [[Zioła i przyprawy/Trybula ogrodowa|trybula ogrodowa (trybula)]], [[Zioła i przyprawy/Bylica draganek|bylica draganek (estragon}]], [[Zioła i przyprawy/Lubczyk ogrodowy|lubczyk ogrodowy]], [[Zioła i przyprawy/Cząber ogrodowy|cząber ogrodowy]], [[Zioła i przyprawy/Liść laurowy|liść laurowy]], [[Zioła i przyprawy/Szałwia lekarska|szałwia lekarska]], [[Zioła i przyprawy/Fenkuł włoski|fenkuł włoski (koper włoski)]]. * Wersja klasyczna: :* 27 % [[Zioła i przyprawy/Cząber ogrodowy|cząbru]] :* 27 % [[Zioła i przyprawy/Rozmaryn lekarski|rozmarynu]] :* 19 % [[Zioła i przyprawy/Macierzanka tymianek|tymianku]] :* 27 % [[Zioła i przyprawy/Lebiodka pospolita|oregano)]] * Warianty: :* często dodatek [[Zioła i przyprawy/Lawenda wąskolistna|lawendy]]. :* czasem dodatek [[Zioła i przyprawy/Bazylia pospolita|bazylii]], [[Zioła i przyprawy/Bylica draganek|estragonu]], nasiona [[Zioła i przyprawy/Fenkuł włoski|kopru włoskiego]], [[Zioła i przyprawy/Trybula ogrodowa|trybul]], [[Zioła i przyprawy/Liść laurowy|liścia laurowego]], [[Zioła i przyprawy/Jałowiec pospolity|jałowca]]. :* niektórzy producenci dodają [[Zioła i przyprawy/Lubczyk ogrodowy|lubczyk]], [[Zioła i przyprawy/Pietruszka|pietruszkę]], [[Zioła i przyprawy/Szałwia lekarska|szałwię]]. == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> 25nzs5bp5lfcw8lxu0a49jbtnkr3mou 540020 540019 2026-04-18T11:20:08Z EdytaT 2664 540020 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Zioła prowansalskie}} [[Plik:Corbeille d'herbes de Provence.jpg|thumb|Zioła prowansalskie]] {{wikipedia|Zioła prowansalskie}} == Zioła prowansalskie == W skład ziół prowansalskich wchodzą m. in. * [[Zioła i przyprawy/Tymianek|tymianek]], [[Zioła i przyprawy/Dziki tymianek|dziki tymianek]], [[Zioła i przyprawy/Majeranek|majeranek]], [[Zioła i przyprawy/Oregano|oregano]], [[Zioła i przyprawy/Rozmaryn|rozmaryn]], [[Zioła i przyprawy/Bazylia|bazylia]], [[Zioła i przyprawy/Trybula|trybula]], [[Zioła i przyprawy/Estragon|estragon]], [[Zioła i przyprawy/Lubczyk|lubczyk]], [[Zioła i przyprawy/Cząber|cząber]], [[Zioła i przyprawy/Liść laurowy|liść laurowy]], [[Zioła i przyprawy/Szałwia|szałwia]], [[Zioła i przyprawy/Fenkuł|fenkuł]]. * Wersja klasyczna: :* 27 % [[Zioła i przyprawy/Cząber|cząbru]] :* 27 % [[Zioła i przyprawy/Rozmaryn|rozmarynu]] :* 19 % [[Zioła i przyprawy/Tymianek|tymianku]] :* 27 % [[Zioła i przyprawy/Oregano|oregano]] * Warianty: :* często dodatek [[Zioła i przyprawy/Lawenda|lawendy]]. :* czasem dodatek [[Zioła i przyprawy/Bazylia|bazylii]], [[Zioła i przyprawy/Estragon|estragonu]], nasiona [[Zioła i przyprawy/Fenkuł|fenkułu]], [[Zioła i przyprawy/Trybula|trybuli]], [[Zioła i przyprawy/Liść laurowy|liścia laurowego]], [[Zioła i przyprawy/Jałowiec|jałowca]]. :* niektórzy producenci dodają [[Zioła i przyprawy/Lubczyk|lubczyk]], [[Zioła i przyprawy/Pietruszka|pietruszkę]], [[Zioła i przyprawy/Szałwia|szałwię]]. == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> r78xrxbp69uezkge4b5nm3jm72xl5t8 Zioła i przyprawy/Swańska sól 0 63473 539976 2026-04-17T19:11:43Z EdytaT 2664 Utworzono nową stronę " {{Podrozdział|[[Zioła i przyprawy]]|Swańska sól (pęczek ziół)}} [[Plik:Svanuri salt - Svanetian salt.jpg|thumb|Swańska sól]] {{wikipedia|Swańska sól}} {{wikisłownik|swańska sól}} == Swańska sól == * Swańska sól (gruz. ''svanuri marili'') to aromatyczna, ziołowa mieszanka przypraw pochodząca z wysokogórskiego regionu Swanetii w Gruzji. Jest to uniwersalna przyprawa, w której [[Zioła i przyprawy/Sól kamienna|sól kamienna]] stanowi bazę d…" 539976 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Swańska sól (pęczek ziół)}} [[Plik:Svanuri salt - Svanetian salt.jpg|thumb|Swańska sól]] {{wikipedia|Swańska sól}} {{wikisłownik|swańska sól}} == Swańska sól == * Swańska sól (gruz. ''svanuri marili'') to aromatyczna, ziołowa mieszanka przypraw pochodząca z wysokogórskiego regionu Swanetii w Gruzji. Jest to uniwersalna przyprawa, w której [[Zioła i przyprawy/Sól kamienna|sól kamienna]] stanowi bazę dla kompozycji dzikich ziół i [[Zioła i przyprawy/Czosnek|czosnku]]. == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> 0zb88yqx97epuafabxnv2jp0zrhhjtw 539977 539976 2026-04-17T19:12:33Z EdytaT 2664 539977 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Swańska sól (pęczek ziół)}} [[Plik:Svanuri salt - Svanetian salt.jpg|thumb|Swańska sól]] {{wikipedia|Swańska sól}} {{wikisłownik|swańska sól}} == Swańska sól == * Swańska sól (gruz. ''svanuri marili'') to pikantna ziołowa mieszanka przypraw pochodząca z wysokogórskiego regionu Swanetii w Gruzji. Jest to uniwersalna przyprawa, w której [[Zioła i przyprawy/Sól kamienna|sól kamienna]] stanowi bazę dla kompozycji dzikich ziół i [[Zioła i przyprawy/Czosnek|czosnku]]. == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> 9lk4dekdsv8sj8mm8a0evm0msab73y6 Śpiewnik/Zakochali się 0 63474 539991 2026-04-17T20:07:45Z Ashaio 4702 nowa pieśń ludowa 539991 wikitext text/x-wiki {{T|Śpiewnik/NawigacjaOpis}} == Opis == Bolesław Leśmian nawiązał do tej pieśni w wierszu ''[[s:Dwoje_ludzieńków|Dwoje ludzieńków]]'' z tomu ''Łąka'': <poem> Często w duszy mi dzwoni pieśń, wyłkana w żałobie O tych dwojgu ludzieńkach, co kochali się w sobie. Lecz w ogrodzie szept pierwszy miłosnego wyznania Stał się dla nich przymusem do nagłego rozstania. Nie widzieli się długo z czyjejś woli i winy, A czas ciągle upływał — bezpowrotny, jedyny. A gdy zeszli się, dłonie wyciągając po kwiecie, Zachorzeli tak bardzo, jak nikt dotąd na świecie! Pod jaworem — dwa łóżka, pod jaworem — dwa cienie, Pod jaworem ostatnie, beznadziejne spojrzenie. I pomarli oboje bez pieszczoty, bez grzechu, Bez łzy szczęścia na oczach, bez jednego uśmiechu. Ust ich czerwień zagasła w zimnym śmierci fiolecie, I pobledli tak bardzo, jak nikt dotąd na świecie! Chcieli jeszcze się kochać poza własną mogiłą, Ale miłość umarła, już miłości nie było. I poklękli spóźnieni u niedoli swej proga, By się modlić o wszystko, lecz nie było już Boga. Więc sił resztą dotrwali aż do wiosny, do lata, By powrócić na ziemię, — lecz nie było już świata. </poem> <br> == Muzyka == '''Autor:''' nieznany (melodia ludowa)<br> <score raw="1" vorbis="1"> \version "2.20.0" tekst = \lyricmode { Za -- ko -- cha -- li się, za -- ko -- cha -- li się Dwo -- je lu -- dzień -- ków w_so -- bie, A Pan Je -- zus wie, a Pan Je -- zus wie, Czy na po -- cie -- chę so -- bie. } \header { title = "Zakochali się" subtitle = "Dwoje ludzieńków" poet = "Słowa: autor nieznany" meter = "(piosnka ludowa)" composer = "Muzyka: autor nieznany" arranger = "(melodia ludowa)" tagline = "" } global = { % \key bes \major \time 4/4 \tempo 4 = 120 \autoBeamOff } %akordy = \chordmode { % \set chordChanges = ##t %} melodia = { \global \relative c''{ c8 e d4 c8[ b] g4 | c8 e d4 c8[ b] g4 | g8 b c4 e8[d] f4 | d2 \fermata g,4 r4 | g8[ b] c4 g' g8[ f] | d1 | %\cadenzaOn f4 e8[ d] c8 b g4( g2) r | %\cadenzaOff \bar "|" g8[ b] c4 e8[ d] f e | c2 g4 r \bar "|." } } \score{ << % \new ChordNames { \akordy } \new Staff \with {midiInstrument = "viola"} { \new Voice = "Air" { \melodia } } \new Lyrics \lyricsto "Air" { \tekst } >> \layout{} \midi{} } </score> <br> '''Źródło:''' Oskar Kolberg, ''[https://polona.pl/item-view/285340e6-7268-42ef-ae04-52e70451569b?page=165 Pieśni ludu polskiego : serya I]''. Warszawa 1857, s. 148. == Tekst == '''Autor:''' nieznany (pieśń ludowa)<br> {{Kolumny|2| <poem> Zakochali się, zakochali się, dwoje ludzieńków w sobie, a Pan Jezus wié, a pan Jezus wié, czy na pociechę sobie. Zakochali się, zakochali się, dolę się nie widzieli, jak się ujrzeli, jak się ujrzeli, oboje zachorzeli. Da u Kasiuli, da u jedynej bieluchna pościołeczka, da u Jasieńka, biednej sieroty zielona muraweczka. Da u Kasiuli, da u jedynej, miodu, wina zadosyć, da u Jasieńka, biednej sieroty, zdrojowej wody prosić. „Moja matulu, moja jedyna, jeślić ja wam miła – ześlijcie też mu, ześlijcie też mu, memu Jasiowi wina. Moja matulu, moja kochana, otwórzcie mi skrzyneczkę, niech ja uszyję, niech uhaftuję Jasiowi koszuleczkę. Jeślić będzie zdrów, jeślić będzie zdrów, niechże ją w zdrowiu schodzi, a jeśli umrze, a jeśli umrze pochować się w niej godzi.” A nad Kasieńką, a nad jedyną, ojciec i matka płacze – a nad Jasieńkiem, biedną sierotą, wrony koniczek skacze. </poem> }} '''Źródło:''' Oskar Kolberg, ''[https://polona.pl/item-view/285340e6-7268-42ef-ae04-52e70451569b?page=165 Pieśni ludu polskiego : serya I]''. Warszawa 1857, s. 148–149. == Zobacz też == * ''[http://antologia.oskarkolberg.pl/pl-PL/Home/Song?id=7981 Zakochali się, zakochali się]'' w serwisie ''[https://antologia.oskarkolberrg.pl Antologia polskich pieśni]'' dzkf7eyezc82atb4589n4u65fzd2ply Śpiewnik/W głos serdeczna dumka płynie 0 63475 539995 2026-04-18T07:39:22Z Ashaio 4702 nowa piosenka 539995 wikitext text/x-wiki {{T|Śpiewnik/NawigacjaOpis}} == Muzyka == '''Autor:''' Kazimierz Julian Kratzer<br> <score raw="1" vorbis="1"> \version "2.20.0" \header{ title = "Dumka wojaka" subtitle = "W głos serdeczna dumka płynie" poet = "Słowa: Henryk Jabłoński" %meter = "Opracowanie:" composer = "Muzyka: Kazimierz Julian Kratzer" %arranger = "Aranżacja:" tagline = "" } global = { \key g \major \time 2/4 \tempo 4=100 } \score{ << \new Voice = "mel" { \set Staff.midiInstrument = #"fiddle" \autoBeamOff \relative c' { \clef treble \global \autoBeamOff e8.^\p dis16 e[(fis]) g\<[( a]) | b8\! b e8. b16 | e8 e\> d8.\! c16 | c8 b4 r8 | b8 c b8. fis16 | a8 g fis e | fis g fis8. e16 | dis8.[( b'16]) b4 | e,8. dis16 e[(fis ]) g\<[( a]) | b8\! b e8. b16 | e8 e\> d8.\! c16 | c8 b4 r8 | b8 c b8. fis16 | a8 \tuplet 3/2 { g16[( a g]) } fis8 e | fis b, g' fis | fis e4 r8 \bar "||" % --- d8^\f c' c16[( b]) a8 | b \tuplet 3/2 { g16[( a g]) } fis8 g | e g c8. e16 | e8 d4. | e8. d16 c8 a | c8 b a g | a g16[( a]) bes8 g | a8.[( d16]) d4 | d,8^\f c' c16[( b]) a8 | b \tuplet 3/2 { g16[( a g]) } fis8 g | e g c e | e8 d4. | e8. d16 c8 a | c8 b a g | fis e16[( fis]) g8 e | dis8.[( b'16]) b4 \fermata | % --- e,8.^\p dis16 e[(fis]) g\<[( a]) | b8\! b e8. b16 | e8 e\> d8.\! c16 | c8 b4 r8 | b8 c b8. fis16 | a8 g fis e | fis g fis8. e16 | dis8.[( b'16]) b4 | e,8. dis16 e[(fis ]) g\<[( a]) | b8\! b e8. b16 | e8 e d8. c16 | c8 b4 r8 | c8 c <e g>8. \fermata <dis fis>16 | fis8 e c a | b8^\markup { \italic {rall.} } ais16[( b]) \grace { b16[( d] } c8.) \fermata b16 | b8 e,4 r8 \bar "|." } } \addlyrics { \small { W_głos ser -- de -- czny dum -- ka pły -- nie, Tam mo -- ja je -- dy -- na A na tej tam U -- kra -- i -- nie Ma -- tka i ro -- dzi -- na Ma -- tka tę -- skna pa -- trzy w_po -- le Łza -- we -- mi o -- czy -- ma Pu -- sta dro -- ga na Po -- do -- le, A -- ni wie -- ści nie ma. Ach! u -- pły -- nie wo -- dy wie -- le, Mi -- nie cza -- su si -- ła Za -- zie -- le -- ni dro -- gę zie -- le, Nim go uj -- rzy mi -- ła. Ach! u -- pły -- nie wo -- dy wie -- le, Mi -- ną la -- ta, la -- tka Za -- zie -- le -- ni dro -- gę zie -- le, Nim go uj -- rzy ma -- tka. W_głos ser -- de -- czny dum -- ka pły -- nie, Tam mo -- ja je -- dy -- na A na tej tam U -- kra -- i -- nie Ma -- tka i ro -- dzi -- na Ma -- tka tę -- skna pa -- trzy w_po -- le Łza -- we -- mi o -- czy -- ma Pu -- sta dro -- ga na Po -- do -- le, A -- ni wie -- ści nie ma. } } >> \layout{} \midi{} } </score> <br> '''Źródło:''' Stefan Surzyński, ''[https://polona.pl/item-view/51dac598-e158-452d-8a45-efb058066dcb?page=93 Echo polskie. T. 3]''. Tarnów, [ok. 1912], s.&nbsp;88–90. == Teskt == '''Autor:''' Henryk Jabłoński<br> {{Kolumny|2| <poem> 1. W głos serdeczny dumka płynie, tam moja jedyna, a na tej tam Ukrainie matka i rodzina. ::Matka tęskna patrzy w pole ::łzawemi oczyma, ::pusta droga na Podole, ::ani wieści nie ma. Ach! upłynie wody wiele, minie czasu siła, zazieleni drogę ziele, nim go ujrzy miła. ::Ach! upłynie wody wiele, ::miną lata, latka, ::zazieleni drogę ziele, ::nim go ujrzy matka. 2. W głos serdeczna dumka płynie, tam moja jedyna, a na tej tam Ukrainie matka i rodzina. ::Miła tęskna patrzy w pole ::czarnemi oczyma, ::pusta droga na Podole, ::ani wieści niema Czarnobrewko, żal urody, taka wola Boża, nie on jeden w świecie młody, tyś jak wiosna hoża. ::Czarne oczy, krasne lica, ::zaklną nie jednego ::tobie szczęście, a tęsknica ::Dla niego, dla niego. 3. W głos serdeczna dumka, płynie, tam moja jedyna, a na tej tam Ukrainie Matka i rodzina. ::Próżno czeka stara matka, ::Próżno czeka miła ::W obcej stronie miną latka, ::Uściska mogiła. </poem> }} <br> '''Źródło:''' Stefan Surzyński, ''[https://polona.pl/item-view/51dac598-e158-452d-8a45-efb058066dcb?page=93 Echo polskie. T. 3]''. Tarnów, [ok. 1912], s.&nbsp;88–91. == Zobacz też == {{Wikiźródła|W_głos_serdeczna_dumka_płynie|W głos serdeczna dumka płynie}} * ''[https://www.staremelodie.pl/piosenka/2194/Dumka_Kratzer__Jablonski Dumka (Katzer – Jabłoński)]'' w serwisie ''[https://www.staremelodie.pl/ Stare melodie]'' 77yn7y85589g7w1p0p5z1qam71ee1pm Śpiewnik/Pożegnanie Childe Harolda 0 63477 540021 2026-04-18T11:47:11Z Ashaio 4702 nowa pieśń 540021 wikitext text/x-wiki {{T|Śpiewnik/NawigacjaOpis}} == Muzyka == '''Autor:''' nieznany<br> <score raw=1 vorbis=1> \version "2.20.0" \header{ title = "Pożegnanie Child Harolda" subtitle = "Bywaj mi zdrowy, kraju kochany" poet = "Słowa: Adam Mickiewicz" meter = "(przekład z George'a Byrona)" composer = "Muzyka: autor nieznany" arranger = "" tagline = "" } \score{ << \new Staff = "mel" \relative c'' { \clef treble \key bes \major \time 4/4 \set Staff.midiInstrument = #"fiddle" \new Voice = "sopran" { \stemUp \autoBeamOff d4^\p c es | g8[ f] f2 | bes,4 a bes | es8[ d] d2 | c8[ f] f4 f | f es a, | c2. | bes2 s4 | d4 c es | g8[ f] f2 | bes,4 a bes | es8[ d] d2 | c8[ f] f4 f | f es a, | c2. | bes2 s4 | \repeat volta 2 { c4^\pp c c | d2\> c4\! | f4 c c | d2 c4 | c4 c c | c\< d e\! | f2. | es2. ^\fermata | d4^\p c es | g8[ f] f2 | bes,4 a bes | e8[ d] d2 | c8[ f] f4 f | f es a, | c2. | bes2 s4 | } } \addlyrics { \small { By -- waj mi zdro -- wy, kra -- ju ko -- cha -- ny! Już w_mgli -- stej ni -- kniesz po -- wło -- ce! Świ -- snę -- ły wia -- try, szu -- mią ba -- łwa -- ny, I mor -- skie pta -- tstwo świe -- go -- ce. Da -- lej za sło -- ńcem, gdzie ja -- sną gło -- wę W_za -- cho -- dnie po -- grą -- ża pia -- ny! Tym -- cza -- sem sło -- ńce by -- waj mi zdro -- we, By -- waj zdrów, kra -- ju ko -- cha --ny! } } } >> \layout{} \midi{ \tempo 4 = 120} } </score> <br> '''Źródło:''' Stefan Surzyński, ''[https://polona.pl/item-view/7a5163c1-72d8-46b8-8b64-85bab3aa3db7?page=131 "Harfiarz" : zbiór pieśni patryotycznych i narodowych : na cztery męskie głosy. Serya 4]''. Tarnów, 1910, s. 120–122. == Tekst == '''Autor:''' George Byron<br> '''Przekład:''' Adam Mickiewicz<br> {{Kolumny|2| <poem> 1. Bywaj mi zdrowy, kraju kochany! Już w mglistej nikniesz powłoce, Świsnęły wiatry, szumią bałwany, I morskie ptactwo świegoce. ::Dalej za słońcem, gdzie jasną głowę ::W zachodnie pogrąża piany! ::Tymczasem, słońce, bywaj mi zdrowe, ::Bywaj zdrów, kraju kochany! 2. Za kilka godzin różanne zorze Promieńmi błyśnie jasnemi, Obaczę niebo, obaczę morze, Lecz nie obaczę mej ziemi. ::Zamek, na którym brzmiało wesele, ::Wieczna żałoba pokryje; ::Na wałach dzikie porośnie ziele, ::U wrót pies wierny zawyje. 3. Pójdź tu, mój paziu! paziu mój mały! Co znaczą te łzy i żale? Czyli cię wichrów zdąsanych szaty, Czy morskie lękają fale? ::Rozwesel oko, rozjaśnij czoło! ::W dobrym okręcie, w pogodę — ::Lotny nasz sokół nie tak wesoło ::Jak my polecim przez wodę. 4. «Niech fala szumi, niech wicher głuszy! Nie dbam, pogoda czy słota; Te łzy wyciska z głębi mej duszy Nie bojaźń, ale tęsknota. ::Bo tam mój stary ojciec zostanie, ::Tam matka zostanie biedna, ::Tam wszyscy moi, prócz ciebie panie, ::Prócz ciebie — i jeszczce jedna... 5. «Ojciec spokojnie mię błogosławił, Nie płacze ani narzeka, Lecz matka, którąm we łzach zostawił, Z jakąż tęsknotą nas czeka?» ::Dość, dość mój paziu! te łzy dziecinne ::Źrenicy twojej przystoją, ::Gdybym miał równie serce niewinne, ::Widziałbyś we łzach i moją. 6. Pójdź tu, mój giermku! giermku mój młody, Skąd ci ta bladość na twarzy? Czy rozhukanej lękasz się wody, Czyli francuskich korsarzy? ::«O! nie, Haroldzie! nie dbam o życie, ::Nie dbam o losów igrzyska, ::Alem zostawił żonę i dziecię, ::To mi łzy gorzkie wyciska. 7. «Żona na końcu twojego sioła W zielonej mieszka dąbrowie; Gdy dziecię z płaczem ojca zawoła, Cóż mu nieszczęsna odpowie?» ::Dość, dość, mój giermku! słuszna twa żałość; ::Ja, choć jej ganić nie mogę, ::Mniejszą mam czułość, myśli me stałe, ::Śmiejąc się, puszczam się w drogę. 8. Kochanki, żony płacz mię nie wzruszy, Bo nim zabłyśnie poranek, Z błękitnych oczu te łzy osuszy Nowy mąż, nowy kochanek... ::Nie żal mi ziemi, gdziem młodość strawił, ::Niestraszne podróże wodne, ::Żałuję tylko, żem nie zostawił ::Nic, coby było łez godne. 9. Teraz po świecie błądzę szerokim I pędzę życie tułacze. Czegoż mam płakać? za kim i po kim? Kiedy nikt po mnie nie płacze... ::Pies chyba tylko zawyje z rana, ::Nim obcą karmiony ręką, ::Kiedyś swojego dawnego pana ::Wściekłą powita paszczęką. 10. Już okręt piersią kraje głębinę, I żagle na wiatr rozwinął. Nie dbam, ku jakim brzegom popłynę, Bylebym nazad nie płynął. ::Gdy mię twe jasne znudzą kryształy, ::Ogromna modra płaszczyzno, ::Powitam lasy, pustynie, skały. ::Bądź zdrowa, luba ojczyzno! </poem> }} <br> '''Źródło:''' Stefan Surzyński, ''[https://polona.pl/item-view/7a5163c1-72d8-46b8-8b64-85bab3aa3db7?page=131 "Harfiarz" : zbiór pieśni patryotycznych i narodowych : na cztery męskie głosy. Serya 4]''. Tarnów, 1910, s. 120–122. == Zobacz też == {{Wikiźródła|Bywaj_mi_zdrowy,_kraju_kochany|Bywaj mi zdrowy, kraju kochany}} 0fsv8yrayinivescoip4hgv5x3fdgjb