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 "&#"..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 "&#"..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: μ
tekst=mw.ustring.gsub(tekst,"&#(%d+);", function(n)
return mw.ustring.char(tonumber(n))
end);
-- encje numeryczne szesnastkowe: μ
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 "&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,"#",function(kod)
return "#";
end);
end;
return tekst;
end;
function p.EncodeTempHashKoduHtmlTekstu(tekst)
local ile1;local ile2;
tekst,ile1=mw.ustring.gsub(tekst,"&#(%d+);",function(kod)
return "&#"..kod..";";
end);
tekst,ile2=mw.ustring.gsub(tekst,"&#x(%x+);",function(kod)
return "&#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,"&#(%d+);",function(kod)
return "&#"..kod..";"
end);
end;
if(((ile2)and(ile2>0))or(not ile2))then
tekst=mw.ustring.gsub(tekst,"&#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('.')+". ");
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('.')+". ");
}
});
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+". ");
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,"&gt;").replace(/</g,"&lt;").replace(/\//g,"&#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(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#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)?("§ion="+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)?("§ion="+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(/&/g,"&").replace(/ /g," ");
var hash=link_strona.replace(/^([^#]*)#(.*)$/,"$2").replace(/&/g,"&").replace(/ /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(/&/g,"&").replace(/ /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(/&/g,"&").replace(/ /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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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|‎}}}}, 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: "‎" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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|‎}}}}, 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: "‎" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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|‎}}}}, 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: "‎" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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|‎}}}}, 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: "‎" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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|‎}}}}, 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: "‎" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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|‎}}}}, 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: "‎" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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|‎}}}}, 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: "‎" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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|‎}}}}, 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: "‎" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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|‎}}}}, 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: "‎" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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|‎}}}}, 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: "‎" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
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___?action=edit#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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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|‎}}}}, 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: "‎" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
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___?action=edit&section=21#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 "&", czyli "&" został zamieniony na "&";
local parametr2="abc_?action=edit&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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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|‎}}}}, 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: "‎" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
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___?action=edit&section=21#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 "&", czyli "&" został zamieniony na "&";
local parametr2="abc_?action=edit&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&section=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§ion=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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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|‎}}}}, 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: "‎" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
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___?action=edit&section=21#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 "&", czyli "&" został zamieniony na "&";
local parametr2="abc_?action=edit&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&section=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§ion=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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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|‎}}}}, 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: "‎" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
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___?action=edit&section=21#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 "&", czyli "&" został zamieniony na "&";
local parametr2="abc_?action=edit&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&section=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§ion=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<>\"">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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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|‎}}}}, 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: "‎" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
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___?action=edit&section=21#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 "&", czyli "&" został zamieniony na "&";
local parametr2="abc_?action=edit&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&section=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§ion=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<>\"">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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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|‎}}}}, 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: "‎" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
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___?action=edit&section=21#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 "&", czyli "&" został zamieniony na "&";
local parametr2="abc_?action=edit&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&section=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§ion=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<>\"">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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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|‎}}}}, 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: "‎" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
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___?action=edit&section=21#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 "&", czyli "&" został zamieniony na "&";
local parametr2="abc_?action=edit&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&section=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§ion=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<>\"">To jest zawartość</span>";
</syntaxhighlight>
== {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} ==
Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|<}}}}, {{Code|{{Nowiki|>}}}} i {{Code|{{Nowiki|&}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|\"}}}} na {{Code|<nowiki>\"</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end;
</syntaxhighlight>
Parametry:
* {{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="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\">Zawartość znacznika</a>";
local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst);
</syntaxhighlight>
Otrzymana zawartość jest pod {{Code|tekst2}}:
<syntaxhighlight lang="lua">
-- Widzimy, że kody odpowiednie HTML, tzn.: "<", ">" i "&" 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: [[user:użytkownik|(Użytkownik)]].";
</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: [[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["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="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}";
</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="* Oto jest pierwszy element listy,\n*: 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§ion=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§ion=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?action=edit&section=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=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=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:msg:Szablon: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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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="k";
local tekst3="&#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: "k"; -->
{{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "&#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|&}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|#}}}}. 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|&}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|#}}}}.
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{{s";
local tekst3="k&#123;&#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{{s"; -->
{{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}}
<!-- Wyświetla wynik: "k&#123;&#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?title=Szablon:Link wewnętrzny&action=edit#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?title=Szablon:Link_wewn%C4%99trzny&action=edit#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|‎}} (znak {{Code|{{Nowiki|‎}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end;
</syntaxhighlight>
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: "â", "€" i "Ž";
local tekst="Oto jest znak: ‎.";
-- 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|‎}}}} 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: \"‎\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#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:_""_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.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|‎}}}}, 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: "‎" i inne_znaki_w_URL: "https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;"__";
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___?action=edit&section=21#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 "&", czyli "&" został zamieniony na "&";
local parametr2="abc_?action=edit&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&section=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§ion=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<>\"">To jest zawartość</span>";
</syntaxhighlight>
== {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} ==
Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|<}}}}, {{Code|{{Nowiki|>}}}} i {{Code|{{Nowiki|&}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|\"}}}} na {{Code|<nowiki>\"</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end;
</syntaxhighlight>
Parametry:
* {{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="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\"nazwa\"\">Zawartość znacznika</a>";
local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst);
</syntaxhighlight>
Otrzymana zawartość jest pod {{Code|tekst2}}:
<syntaxhighlight lang="lua">
-- Widzimy, że kody odpowiednie HTML, tzn.: "<", ">" i "&" 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. 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. 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